From 057e86cfda1ef5c7a370c99ef409d22e48772ca7 Mon Sep 17 00:00:00 2001 From: Sandro Circi Date: Wed, 9 Oct 2024 14:28:29 +0200 Subject: [PATCH] feat(module): implement `--ui-radius` CSS variable (#2341) Co-authored-by: Benjamin Canac --- docs/app/app.config.ts | 3 + docs/app/app.vue | 4 + docs/app/components/Header.vue | 28 +- .../components/color-mode/ColorModeButton.vue | 38 - .../components/color-picker/ColorPicker.vue | 66 -- .../color-picker/ColorPickerPill.vue | 24 - docs/app/components/content/ComponentCode.vue | 4 +- .../components/content/ComponentExample.vue | 2 +- docs/app/components/content/Placeholder.vue | 2 +- .../components/theme-picker/ThemePicker.vue | 140 +++ .../theme-picker/ThemePickerButton.vue | 32 + docs/app/plugins/{colors.ts => theme.ts} | 28 +- docs/content/1.getting-started/3.theme.md | 59 +- playground/app/components/Placeholder.vue | 2 +- src/runtime/index.css | 2 + src/theme/alert.ts | 2 +- src/theme/badge.ts | 2 +- src/theme/button.ts | 2 +- src/theme/card.ts | 2 +- src/theme/checkbox.ts | 2 +- src/theme/command-palette.ts | 2 +- src/theme/context-menu.ts | 4 +- src/theme/drawer.ts | 6 +- src/theme/dropdown-menu.ts | 4 +- src/theme/input-menu.ts | 12 +- src/theme/input.ts | 2 +- src/theme/kbd.ts | 2 +- src/theme/modal.ts | 2 +- src/theme/navigation-menu.ts | 8 +- src/theme/popover.ts | 2 +- src/theme/select.ts | 6 +- src/theme/skeleton.ts | 2 +- src/theme/tabs.ts | 6 +- src/theme/toast.ts | 2 +- src/theme/tooltip.ts | 2 +- .../__snapshots__/Alert.spec.ts.snap | 46 +- .../__snapshots__/Badge.spec.ts.snap | 28 +- .../__snapshots__/Button.spec.ts.snap | 66 +- .../__snapshots__/ButtonGroup.spec.ts.snap | 28 +- .../__snapshots__/Card.spec.ts.snap | 10 +- .../__snapshots__/Checkbox.spec.ts.snap | 42 +- .../__snapshots__/CommandPalette.spec.ts.snap | 362 +++---- .../__snapshots__/Drawer.spec.ts.snap | 32 +- .../__snapshots__/DropdownMenu.spec.ts.snap | 338 +++---- .../__snapshots__/Form.spec.ts.snap | 48 +- .../__snapshots__/Input.spec.ts.snap | 66 +- .../__snapshots__/InputMenu.spec.ts.snap | 566 +++++------ .../components/__snapshots__/Kbd.spec.ts.snap | 20 +- .../__snapshots__/Modal.spec.ts.snap | 62 +- .../__snapshots__/NavigationMenu.spec.ts.snap | 168 ++-- .../__snapshots__/Pagination.spec.ts.snap | 908 +++++++++--------- .../__snapshots__/Popover.spec.ts.snap | 8 +- .../__snapshots__/Select.spec.ts.snap | 544 +++++------ .../__snapshots__/SelectMenu.spec.ts.snap | 614 ++++++------ .../__snapshots__/Skeleton.spec.ts.snap | 2 +- .../__snapshots__/Slideover.spec.ts.snap | 32 +- .../__snapshots__/Tabs.spec.ts.snap | 80 +- .../__snapshots__/Textarea.spec.ts.snap | 48 +- .../__snapshots__/Toast.spec.ts.snap | 64 +- .../__snapshots__/Tooltip.spec.ts.snap | 10 +- 60 files changed, 2406 insertions(+), 2292 deletions(-) delete mode 100644 docs/app/components/color-mode/ColorModeButton.vue delete mode 100644 docs/app/components/color-picker/ColorPicker.vue delete mode 100644 docs/app/components/color-picker/ColorPickerPill.vue create mode 100644 docs/app/components/theme-picker/ThemePicker.vue create mode 100644 docs/app/components/theme-picker/ThemePickerButton.vue rename docs/app/plugins/{colors.ts => theme.ts} (67%) diff --git a/docs/app/app.config.ts b/docs/app/app.config.ts index 7056ebb4..68049a60 100644 --- a/docs/app/app.config.ts +++ b/docs/app/app.config.ts @@ -4,6 +4,9 @@ export default defineAppConfig({ expand: true, duration: 5000 }, + theme: { + radius: 0.25 + }, ui: { colors: { primary: 'green', diff --git a/docs/app/app.vue b/docs/app/app.vue index 8b9fb4b9..63be6b09 100644 --- a/docs/app/app.vue +++ b/docs/app/app.vue @@ -52,6 +52,7 @@ const links = computed(() => { }) const color = computed(() => colorMode.value === 'dark' ? (colors as any)[appConfig.ui.colors.neutral][900] : 'white') +const radius = computed(() => `:root { --ui-radius: ${appConfig.theme.radius}rem; }`) useHead({ meta: [ @@ -62,6 +63,9 @@ useHead({ { rel: 'icon', type: 'image/svg+xml', href: '/icon.svg' }, { rel: 'canonical', href: `https://ui.nuxt.com${withoutTrailingSlash(route.path)}` } ], + style: [ + { innerHTML: radius, id: 'nuxt-ui-radius', tagPriority: -2 } + ], htmlAttrs: { lang: 'en' } diff --git a/docs/app/components/Header.vue b/docs/app/components/Header.vue index 126fbe12..42199177 100644 --- a/docs/app/components/Header.vue +++ b/docs/app/components/Header.vue @@ -11,6 +11,12 @@ const config = useRuntimeConfig().public const navigation = inject>('navigation') // const items = computed(() => props.links.map(({ icon, ...link }) => link)) + +defineShortcuts({ + meta_g: () => { + window.open('https://github.com/nuxt/ui/tree/v3', '_blank') + } +})