Еще одна малоизвестная
Для
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
Мы уже писали об Ark UI библиотеке
На днях видный член
Выглядит очень хорошей альтернативой
Попробовал на своем проекте. Сперва заменил FilePond на
Ну и правильный
#ui #lib #headless #arkui
На днях видный член
vuejs core team
и VitePress
maintainer Divyansh Singh
назвал их лучшей альтернативой React Aria во Vue
экосистемеUnstyled
, хорошая поддержка A11y
. Vue
версия еще неполная. Документация скудная, не для вкатунов. Нужно думать. Основана библиотека на zag.js, документацию можно смотреть там.Выглядит очень хорошей альтернативой
radix/reka/shadcn|vue
, только без встроенных tailwind
-ов, vueuse
-ов, unjs
-ов, tanstack
-ов и других скрытых зависимостей и обмана типа "copy-paste и всё".Попробовал на своем проекте. Сперва заменил FilePond на
FileUpload
- (-100Kb; +30Kb). Стало значительно красивей и намного кастомизируемей (стили генерил AI
). Затем добавил Tabs
(+20Кб). Затем - Combobox
с тэгами и выпадающим меню, которое во многих UI
библиотеках тащит 200-400Кб из-за позиционирования - (+70Кб). В общем, вполне экономично и удобно для создания своего небольшого UI kit
с требованиями к A11y
.Ну и правильный
DatePicker
можно собрать.#ui #lib #headless #arkui
🔥11👎1
Уже писали год назад об этом каталоге
https://ui-libs.vercel.app/
С тех пор там немного прибавилось библиотек и функционала
#ui #lib
UI
библиотекhttps://ui-libs.vercel.app/
С тех пор там немного прибавилось библиотек и функционала
#ui #lib
UI Lib Picker
🎨 Pick the Right UI Library for your Vue 3 or Nuxt 3 Project
🔥5
Еще одна
proxima-vue
В альфа версии, но кода много
#ui #lib
UI
библиотека на Vue 3
от нашего соотечественника для ознакомленияproxima-vue
В альфа версии, но кода много
#ui #lib
proxima.wiki
UI Component Library for Vue 3 and Nuxt
👍9
Написал vite-plugin-json-md
Заменяет в
Удобен при
Обрабатывает как инлайн вставки
#lib #i18n #markdown
Заменяет в
JSON
/JSON5
файлах markdown
на сконвертированный HTML
Удобен при
i18n
(интернационализации), когда текст перевода лежит в json
файлах, но иногда бывает на странице сложное форматирование и разбивать по ключам очень хаотично. Можно записать тогда через markdown
.Обрабатывает как инлайн вставки
markdown
, так и ссылки на внешние md
файлы#lib #i18n #markdown
npm
npm: vite-plugin-json-md
Vite plugin for processing markdown in JSON files. Latest version: 0.7.2, last published: 3 months ago. Start using vite-plugin-json-md in your project by running `npm i vite-plugin-json-md`. There is 1 other project in the npm registry using vite-plugin…
❤🔥9👍3
Переделал прошлый плагин, сделал его удобней и опиньонейтед - полностью под конкретный случай
vite-plugin-i18n-json-md - берет
В конфиге указывается входная директория, выходная и локали.
Переводы удобно держать в небольших файлах и переводить через
#vite #i18n #lib
i18n
vite-plugin-i18n-json-md - берет
JSON*
файлы из директории локали, конвертирует markdown
, если он там есть, объединяет всё в один и выводит в стандартный для i18n
json
, либо же в json5
или js
формате. По желанию - минификация.В конфиге указывается входная директория, выходная и локали.
import { i18nJsonMdPlugin } from "vite-plugin-i18n-json-md";
export default defineConfig({
plugins: [
vue(),
i18nJsonMdPlugin({
sourceDir: "src/app/locales",
outputDir: "src/assets/i18n",
locales: ["en", "ru", "gr"],
mode: "dev",
outputFormat: "json",
}),
],
Переводы удобно держать в небольших файлах и переводить через
AI
- как целиком, так и автокомплитом. Добавил ключ с переводом в один файл, переходишь в аналогичный файл в другой локали - а он уже предлагает в нужном месте с нужным переводом вставить строку. Молодец.#vite #i18n #lib
👍8
В мой vite-plugin-html-injection сделали первый
Приятно, чёрт возьми.
Теперь во фрагментах можно использовать
#vite #plugin #lib
PR
Приятно, чёрт возьми.
Теперь во фрагментах можно использовать
Vite env
переменные, типа %VITE_API_URL%, которые будут заменены на их значения.#vite #plugin #lib
GitHub
vite-plugin-html-injection/README.ru.md at 281d582012f6c086893c72dcd144e7d74e7155da · altrusl/vite-plugin-html-injection
Vite plugin for injecting html, js, css code snippets into index.html - altrusl/vite-plugin-html-injection
👍21❤1
Выпустил
Для чего он нужен?
1. Просите
2. Просите
3. Результат в текстовом виде в
Список поддерживаемых типов диаграмм (несколько десятков) здесь
#ai #lib #vitepress
v1.0.0
плагина vitepress-plugin-diagramsДля чего он нужен?
1. Просите
AI
добавить в проект VitePress
документацию2. Просите
AI
изучить кодовую базу какого-нибудь модуля (TimelineChart
в данном случае) и сгенерировать несколько диаграмм, описывающих его структуру и потоки данных3. Результат в текстовом виде в
markdown
файлах и сразу на экране. Никаких расширений IDE
ставить не нужно.Список поддерживаемых типов диаграмм (несколько десятков) здесь
#ai #lib #vitepress
👍13