Еще одна малоизвестная
Для
Features
📦 Out-of-box high quality 78 Vue 3 components
📐 Intuitive, minimalistic Api design
🔧 Configurable default value of props, quickly complete global/local modifications
⚡️ Composition Api, good performance base
🔨 With TypeScript, fully types
💪 1100+ unit tests to provide good stability
🎨 Support CSS variable, built-in dark theme
🚩 Support i18n
🛫 Provide resolver, support unplugin
🚤 Support SSR
🩹 Good a11n
👀 Close to business code arrangement, low threshold for source code reading
The design tokens are base on Open Color, and have some adjustments.
————
А какие еще чисто
Чтобы не переписка с какого-нибудь
Это ведь имеет огромное значение и для размера бандла, и для производительности, и для
#lib #ui
UI
библиотека от китайцев - Vexip UI Для
Vue 3
, с мягкой приятной графикой и интересным наборов компонентов. Есть, например, Wheel и TourFeatures
📦 Out-of-box high quality 78 Vue 3 components
📐 Intuitive, minimalistic Api design
🔧 Configurable default value of props, quickly complete global/local modifications
⚡️ Composition Api, good performance base
🔨 With TypeScript, fully types
💪 1100+ unit tests to provide good stability
🎨 Support CSS variable, built-in dark theme
🚩 Support i18n
🛫 Provide resolver, support unplugin
🚤 Support SSR
🩹 Good a11n
👀 Close to business code arrangement, low threshold for source code reading
The design tokens are base on Open Color, and have some adjustments.
————
А какие еще чисто
Vue 3
UI
библиотеки существуют?Чтобы не переписка с какого-нибудь
Реакта
или Vue 2
.Это ведь имеет огромное значение и для размера бандла, и для производительности, и для
DX
.#lib #ui
Vexip UI
Vexip UI - Make interesting in development
A Vue 3 UI library, highly customizability, full TypeScript, performance pretty good.
👍3
Мой
Предназначен для вставки статичных фрагментов кода (типа аналитики, SW, open graph, splash screen) в
Имеет режимы вставки в
#vite #lib
Vite
плагин vite-plugin-html-injection потихоньку набирает популярностьПредназначен для вставки статичных фрагментов кода (типа аналитики, SW, open graph, splash screen) в
index.html
во время сборки, чтобы избежать захламления этого файла в проекте и разделить код по предназначению. Имеет режимы вставки в
dev
, prod
и оба. Поддерживает hot-reload
при работе с dev
сервером.#vite #lib
👍40🔥3
Если кто хочет помочь закончить портировать реактовские
Чем плох известный порт
#ui #lib
Radix UI Primitives
на Vue 3
- вам сюда. Большая часть компонентов уже сделана.Чем плох известный порт
Radix-Vue
автор проекта рассказал здесь#ui #lib
GitHub
GitHub - perigee-ui/vue-primitives: Vue Radix UI Primitives 1:1 . Components, icons, colors, and templates for building high-quality…
Vue Radix UI Primitives 1:1 . Components, icons, colors, and templates for building high-quality, accessible UI. Free and open-source. - perigee-ui/vue-primitives
Нашлась еще одна
Легковесная, material design 2/3, 5К звезд, много фич
Кто-то пробовал?
#ui #lib
Vue 3
- нативная UI
библиотека от китайцев - VarletЛегковесная, material design 2/3, 5К звезд, много фич
Кто-то пробовал?
#ui #lib
varletjs.org
Varlet UI - Vue3 Material Design Component Library
Varlet UI is a Material design component library developed based on Vue3, supporting mobile and desktop, developed and maintained by varletjs organization. Support Typescript, import on demand, dark mode, theme customization, internationalization, and provide…
🔥4
pqina.nl
Easy File Uploading With JavaScript | FilePond
A JavaScript library that can upload anything you throw at it, optimizes images for faster uploads, and offers a great, accessible, silky smooth user experience.
FilePond
Подсказали красивый
15K+ звезд, много плагинов,, правда, довольно увесистый - 100Кб+
На
Вот, кстати, один из вариантов использовать динамические импорты/роуты - в мобильной версии
#lib
Подсказали красивый
file uploader
компонент15K+ звезд, много плагинов,, правда, довольно увесистый - 100Кб+
На
JS
. Подключается монтированием к элементу.<script setup lang="ts">
import * as FilePond from "filepond";
import FilePondPluginFileValidateType from "filepond-plugin-file-validate-type";
import { onMounted, ref, useTemplateRef } from "vue";
import "filepond/dist/filepond.min.css";
const fileInput = useTemplateRef("fileInput");
FilePond.registerPlugin(FilePondPluginFileValidateType);
onMounted(() => {
FilePond.setOptions({
acceptedFileTypes: ["image/*", "application/pdf"],
server: "api/upload/",
});
FilePond.create(fileInput.value);
});
</script>
<template>
<div class="analysis-view">
<h2>Analysis upload</h2>
<p></p>
<input
ref="fileInput"
type="file"
class="filepond"
name="filepond"
multiple
data-allow-reorder="true"
data-max-file-size="3MB"
data-max-files="3"
/>
</div>
</template>
Вот, кстати, один из вариантов использовать динамические импорты/роуты - в мобильной версии
drag-n-drop
не нужен, поэтому можно обойтись более простым file input
и сэкономить на бандле.#lib
❤3👍1
Для реализации своих
Их
В данном случае содержимое тултипа является ребенком элемента, на котором его надо показать. Возможны другие варианты реализации, включая кастомную директиву.
Обертывать в
#lib #tooltip #dropdown
tooltip
-ов и "выпадашек", наверное, самым оптимальный вариантом является использование современной и минималистичной библиотеки Floating UIИх
Vue
адаптер мне не подошел. Вот простой вариант своего тултипа на их чистом js
пакете.В данном случае содержимое тултипа является ребенком элемента, на котором его надо показать. Возможны другие варианты реализации, включая кастомную директиву.
Обертывать в
Tooltip
компонент то, на чем его надо показать, имхо, извращение.<script setup lang="ts">
import { computePosition, flip, offset, shift } from "@floating-ui/dom";
import { onMounted, ref, useTemplateRef } from "vue";
const popover = useTemplateRef("popover");
onMounted(() => {
popover.value.showPopover();
computePosition(popover.value.parentElement, popover.value, {
placement: "left",
middleware: [flip(), shift({ padding: 5 }), offset(10)],
}).then(({ x, y }) => {
Object.assign(popover.value.style, {
left: `${x}px`,
top: `${y}px`,
});
});
});
</script>
<template>
<div
ref="popover"
class="popover"
popover
role="tooltip"
>
<div class="tooltip-body">Hello</div>
</div>
</template>
<style scoped>
.popover {
position: fixed;
width: max-content;
top: 0;
left: 0;
margin: 0;
padding: 1em;
text-align: left;
border: 1px solid var(--bbl-c-border);
border-radius: 5px;
max-width: 400px;
box-shadow:
0 14px 44px rgba(0, 0, 0, 0.12),
0 3px 9px rgba(0, 0, 0, 0.12);
border-color: #bbb;
}
</style>
#lib #tooltip #dropdown
Floating-Ui
Floating UI - Create tooltips, popovers, dropdowns, and more
A JavaScript library to position floating elements and create interactions for them.
Иногда при создании своих
Например, минималистичный BeerCSS
#css #lib #ui
UI
компонент не обязательно использовать громоздкие Vue
библиотеки, достаточно стилизации CSS
фреймворка. Например, минималистичный BeerCSS
CSS
фреймворки подходят как минимум для прототипирования и вдохновения. Также их можно использовать с unstyled
компонентами, типа Radix Vue
#css #lib #ui
Beercss
Beer CSS - Build material design interfaces in record time, without stress for devs 🍺💛.
The first CSS framework based on Material Design 3. Latest M3 Expressive already. 10x smaller than others CSS frameworks based on Material Design. Translates Material Design to HTML semantic standard. Ready to use with any JS framework. Highly focused on…
👍4