Giter VIP home page Giter VIP logo

latte-ui's Introduction

Hi! ๐Ÿ‘‹๐Ÿฝ

My name is Bas, a full stack developer, 27 years old and live in a small town called Groenlo in The Netherlands.

Get in touch

Want to work with me or just chat about all things related to programming, send me a message!

Open source projects

I have some open source projects for you to check out (and use in your own projects of course!), these projects are mostly created by me for my own projects, and I decided to make them public.

Visit my website for more

If you want to see some projects that I've worked on, check out one of the following websites:

latte-ui's People

Contributors

basmilius avatar naviisml avatar rienbijl avatar teuns avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar

latte-ui's Issues

Make scrollbars change with theme

Since Firefox does not (at the moment) support custom scrollbars like Chrome, it would be nice if something like the class below would be implemented to simulate custom scrollbars:

.custom-scrollbar {
  scrollbar-width: thin;
  scrollbar-color: thumbColor trackColor;
}

Pre-made layouts

What
A new package (e.g. @bybas/latte-ui-layouts) that contains a few pre-made layouts.

Layout ideas

  • Proper master-detail.
  • Various app layouts.
  • Various admin layouts.

Write documentation

Need to write a lot of documentation and create a few examples.

What needs to happen

  • Getting started
  • Layout
    • Colors
    • Grid system
    • Typography
    • Utilities
    • Variables
  • Components
    • App bar
    • Avatar
    • Badge
    • Bottom nav
    • Button
    • Chat
    • Data table
    • Dropdown button
    • Expandable
    • Form elements
    • List
    • Message
    • Nav
    • Notice
    • Notification
    • Overlay
    • Pagination
    • Panel
    • Popup
    • Portal
    • Progress
    • Question
    • Ripple
    • Sheet
    • Snackbar
    • Spinner
    • Swiper
    • Tabs
  • JavaScript
    • Actions
    • Message / alert
    • Notice
    • Utilities

[1.9] Improve form elements.

Improvements to existing form elements and lower their css footprint.

  • Text, number and select fields.
  • Checkbox (only improvements).
  • Radio button (only improvements).
  • Toggle button (only improvements).
  • Colorpicker.
  • Date and time pickers.

Switch to webpack

Why
Fasted build process, less plugins for the same work and better community.

Target version
None, just a build process.

Expandables

What
A new component to toggle content like more text in a panel or a submenu.

API

<latte-expandable>
	<button v-slot:header>Toggle</button>
	
	<div>
		Extra content!
	</div>
</latte-expandable>

Unify icons even more

What
After #47 we should also give users the option to override every icon used within latte-ui itself.

Proposal
Create new options containing all icons that can be overwritten by users.

Target version
1.9

Dropdown does not close by clicking on it

When you click the dropdown icon (see icon marked red in the image) to open the dropdown, you cannot use the same icon to close it again.
To close the dropdown you need to click next to it, or select an item
image

Intranet Darkmode

Bij het toevoegen van nieuwe inloggegevens in de darkmode van het intranet, heeft de tekst in 'Relatie' nog zwarte/donkere tekst.

Darkmode-bugje

Bottom nav

What
Bottom nav is a navigation component that sits on the bottom of the screen. Users can touch various icons to navigate between top-level screens.

Why
Works well on mobile and could use it in work related projects.

What should the API look like?

<latte-bottom-nav :value="3">
	<latte-ripple as="a" class="btn btn-action"><i class="mdi mdi-home"></i><span>Home</span></latte-ripple>
	<latte-ripple as="a" class="btn btn-action"><i class="mdi mdi-compass"></i><span>Discover</span></latte-ripple>
	<latte-ripple as="a" class="btn btn-action"><i class="mdi mdi-music-note"></i><span>My music</span></latte-ripple>
	<latte-ripple as="a" class="btn btn-action"><i class="mdi mdi-radio-tower"></i><span>Radio</span></latte-ripple>
	<latte-ripple as="a" class="btn btn-action"><i class="mdi mdi-shopping-music"></i><span>Store</span></latte-ripple>
</latte-bottom-nav>

<latte-bottom-nav class="bottom-nav-primary bottom-nav-shifting" :value="3">
	<latte-ripple as="a" class="btn btn-action"><i class="mdi mdi-home"></i><span>Home</span></latte-ripple>
	<latte-ripple as="a" class="btn btn-action"><i class="mdi mdi-compass"></i><span>Discover</span></latte-ripple>
	<latte-ripple as="a" class="btn btn-action"><i class="mdi mdi-music-note"></i><span>My music</span></latte-ripple>
	<latte-ripple as="a" class="btn btn-action"><i class="mdi mdi-radio-tower"></i><span>Radio</span></latte-ripple>
	<latte-ripple as="a" class="btn btn-action"><i class="mdi mdi-shopping-music"></i><span>Store</span></latte-ripple>
</latte-bottom-nav>

Error in lifecycle hooks on cli hot swap.

What
If cli compiles the changes and there is a <latte-popup> or <latte-overlay> on the page, an error will be triggered in beforeDestroy and mounted.

  • <latte-overlay/>
  • <latte-popup/>

Add portals

What
Portals are a way to render something somewhere else in your application.

Why
You'll be able to render something from a component without breaking it into it's own component.

What should the API look like?

<!-- Portal to the target named destination. -->
<latte-portal to="destination">
	<button class="btn btn-contained btn-primary"><span>Button</button></button>
</latte-portal>

<!-- Create a portal target; component cannot have children. -->
<latte-portal-target name="destination"/>

Introduce more components.

Why
It's more streamlined with the rest of latte-ui.

Proposed components

  • latte-checkbox
  • latte-radio
  • latte-toggle

Target version
1.8.0

Autocomplete bugs

  • Autocomplete is disabled when v-model changes while initializing.
  • You can stil search when autocomplete is disabled and field is focussed.

Data sources

Why
More flexible way to add data to various components.

Affected components

  • Autocomplete.
  • Data table.

Note on data fragment and data table
We could find a way to merge these components.

Target version
1.8.0

Uploaders

What
Current uploader component is broken. Need to create a new one that is more extendible.

Solution
Introduce a new <latte-uploader/> component that is easily extendable with scoped slots. That component should be the skeleton of every uploader tool in latte ui. Other components can use this ons as a basis.

Error when using own emoji package.

Hey,

I'm trying to use my own icon pack. When I set the options in my app.js

Vue.use(LatteUI **, { emojiBaseUrl: 'https://mijnsite/emojis', emojiPath: '/svg/'}**);

^^What is between the ** is causing the error.

I'm getting a error that is:

TypeError: Cannot read property 'indexOf' of undefined
    at convertCodePoint (app.js?id=8728f818db6fe7867144:1453)
    at app.js?id=8728f818db6fe7867144:1540
    at Array.map (<anonymous>)
    at onEmojisLoaded (app.js?id=8728f818db6fe7867144:1529)
    at app.js?id=8728f818db6fe7867144:1508

The error is related to the code that is inside emoji.js:

function convertCodePoint(codePoint)
{
    if (codePoint.indexOf("-") > -1)
    {
        let parts = [];
        let s = codePoint.split("-");

        for (let i = 0; i < s.length; i++)
        {
            let part = parseInt(s[i], 16);

            if (part >= 0x10000 && part <= 0x10FFFF)
            {
                let hi = Math.floor((part - 0x10000) / 0x400) + 0xD800;
                let lo = ((part - 0x10000) % 0x400) + 0xDC00;
                part = (String.fromCharCode(hi) + String.fromCharCode(lo));
            }
            else
            {
                part = String.fromCharCode(part);
            }

            parts.push(part);
        }

        return parts.join("");
    }
    else
    {
        let s = parseInt(codePoint, 16);

        if (s >= 0x10000 && s <= 0x10FFFF)
        {
            let hi = Math.floor((s - 0x10000) / 0x400) + 0xD800;
            let lo = ((s - 0x10000) % 0x400) + 0xDC00;

            return (String.fromCharCode(hi) + String.fromCharCode(lo));
        }
        else
        {
            return String.fromCharCode(s);
        }
    }
}

I want to use my own emoji package that i host on my own website, but it won't work. So how can i fix this?

Hope to hear soon.

An update for this project.

Hi! So, there weren't any updates in the past couple of months to this project and that is with a good reason. As you probably know, Vue 3 is in RC right now and I've been working on a 2.x version of Latte UI, build for Vue 3.

When it's ready for alpha, I'll publish the fresh code in this repository.

Thnx for the patience! ๐Ÿ˜ƒ

Improve popups

What
When popups are opened a is-popup-opened class is added to main#app, but when two popups are opened, the class gets removed while there is still a popup opened. We need something to keep track of popups and add or remove the class in that something.

Proposed api

export function isPopupOpened() {}

export function popupClosed() {}

export function popupOpened() {}

Unify icons

What
Latte UI uses materialdesignicons.com as it's core icon library, as Latte UI is now used by other people we should also support other icon libraries. For CSS I already created a $latte-icon-class variable.

Proposal
Create an icon factory that can be overridden in Vue.use(LatteUI, {...}) and provide some defaults.

Target version
1.8.0

Popup: Add persistent prop.

Component
latte-popup

Type
New feature.

Description
Add a new persistent property. When TRUE the popup cannot close by clicking outside.

Add css for lists.

List views are a common use case for displaying information. List markup should be similar to navs.

  • Create basic list markup, based on nav.
  • Add markup for one or more lines of text in a list item.
  • Add support for prefixes and suffixes, e.g. avatars or icons.

Action buttons refinement

What's wrong
Action buttons should be able to work with btn-text (default), btn-contained and btn-soft to add more variety to them.

Current behavior
It now basically a copy of btn-text

Overlays don't respond to pointer events.

With the recent change that overlays block scrolling etc on the root element, overlays don't respond to pointer-events.

Solution
Add pointer-events: all to overlays when they're opened.

App bars

Why
Our toolbar concept works only with a single toolbar per page. App bars will also give more flexibility to the developer.

Tasks

  • Create base css for app bars.
  • Apply theming.

Benefits over toolbar

  • More than one row.
  • More flexibility.

Submenus for nav-list.

Add support for submenus in nav-list. This can be done without a new Vue component.

On mobile, submenus should transition to the new menu with a back button.

Introduce a Window component.

What
For #10 it would be awesome if one menu can morph into another one. This window component should have sub views that can replace each other.

Why
Opens the possibility to create other components based on this at a later point, such as a carousel.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.