Theming docs progress update

pull/5507/head
Cagatay Civici 2024-03-31 02:15:56 +03:00
parent a7c3bf15e3
commit a9df0acc65
21 changed files with 788 additions and 11 deletions

View File

@ -186,7 +186,7 @@
border: 0 none;
padding: 0.25rem 1rem 0.25rem 1rem;
color: var(--text-secondary-color);
font-weight: 400;
font-weight: 500;
white-space: nowrap;
min-width: 0;
overflow: hidden;

View File

@ -0,0 +1,22 @@
<template>
<DocSectionText v-bind="$attrs">
<p>Lorem Ipsum.</p>
</DocSectionText>
<DocSectionCode :code="code" hideToggleCode importCode hideStackBlitz />
</template>
<script>
export default {
data() {
return {
code: {
basic: `
html {
font-size: 14px;
}
`
}
};
}
};
</script>

View File

@ -0,0 +1,182 @@
<template>
<DocSectionText v-bind="$attrs">
<p>Currently Aura is the only available preset and more will follow in the upcoming updates.</p>
</DocSectionText>
<TabView>
<TabPanel header="Aura"><DocSectionCode :code="code" hideToggleCode importCode hideStackBlitz /></TabPanel>
<TabPanel header="Lara">Under development.</TabPanel>
<TabPanel header="Nora">Under development.</TabPanel>
<TabPanel header="Material">Under development.</TabPanel>
</TabView>
</template>
<script>
export default {
data() {
return {
code: {
basic: `
import accordion from 'primevue/themes/primeone/presets/aura/accordion';
// ... imports of other component tokens
export default {
primitive: {
rounded: {
sm: '4px',
base: '6px',
lg: '8px',
xl: '12px'
},
emerald: { 50: '#ecfdf5', 100: '#d1fae5', 200: '#a7f3d0', 300: '#6ee7b7', 400: '#34d399', 500: '#10b981', 600: '#059669', 700: '#047857', 800: '#065f46', 900: '#064e3b', 950: '#022c22' },
green: { 50: '#f0fdf4', 100: '#dcfce7', 200: '#bbf7d0', 300: '#86efac', 400: '#4ade80', 500: '#22c55e', 600: '#16a34a', 700: '#15803d', 800: '#166534', 900: '#14532d', 950: '#052e16' },
lime: { 50: '#f7fee7', 100: '#ecfccb', 200: '#d9f99d', 300: '#bef264', 400: '#a3e635', 500: '#84cc16', 600: '#65a30d', 700: '#4d7c0f', 800: '#3f6212', 900: '#365314', 950: '#1a2e05' },
red: { 50: '#fef2f2', 100: '#fee2e2', 200: '#fecaca', 300: '#fca5a5', 400: '#f87171', 500: '#ef4444', 600: '#dc2626', 700: '#b91c1c', 800: '#991b1b', 900: '#7f1d1d', 950: '#450a0a' },
orange: { 50: '#fff7ed', 100: '#ffedd5', 200: '#fed7aa', 300: '#fdba74', 400: '#fb923c', 500: '#f97316', 600: '#ea580c', 700: '#c2410c', 800: '#9a3412', 900: '#7c2d12', 950: '#431407' },
amber: { 50: '#fffbeb', 100: '#fef3c7', 200: '#fde68a', 300: '#fcd34d', 400: '#fbbf24', 500: '#f59e0b', 600: '#d97706', 700: '#b45309', 800: '#92400e', 900: '#78350f', 950: '#451a03' },
yellow: { 50: '#fefce8', 100: '#fef9c3', 200: '#fef08a', 300: '#fde047', 400: '#facc15', 500: '#eab308', 600: '#ca8a04', 700: '#a16207', 800: '#854d0e', 900: '#713f12', 950: '#422006' },
teal: { 50: '#f0fdfa', 100: '#ccfbf1', 200: '#99f6e4', 300: '#5eead4', 400: '#2dd4bf', 500: '#14b8a6', 600: '#0d9488', 700: '#0f766e', 800: '#115e59', 900: '#134e4a', 950: '#042f2e' },
cyan: { 50: '#ecfeff', 100: '#cffafe', 200: '#a5f3fc', 300: '#67e8f9', 400: '#22d3ee', 500: '#06b6d4', 600: '#0891b2', 700: '#0e7490', 800: '#155e75', 900: '#164e63', 950: '#083344' },
sky: { 50: '#f0f9ff', 100: '#e0f2fe', 200: '#bae6fd', 300: '#7dd3fc', 400: '#38bdf8', 500: '#0ea5e9', 600: '#0284c7', 700: '#0369a1', 800: '#075985', 900: '#0c4a6e', 950: '#082f49' },
blue: { 50: '#eff6ff', 100: '#dbeafe', 200: '#bfdbfe', 300: '#93c5fd', 400: '#60a5fa', 500: '#3b82f6', 600: '#2563eb', 700: '#1d4ed8', 800: '#1e40af', 900: '#1e3a8a', 950: '#172554' },
indigo: { 50: '#eef2ff', 100: '#e0e7ff', 200: '#c7d2fe', 300: '#a5b4fc', 400: '#818cf8', 500: '#6366f1', 600: '#4f46e5', 700: '#4338ca', 800: '#3730a3', 900: '#312e81', 950: '#1e1b4b' },
violet: { 50: '#f5f3ff', 100: '#ede9fe', 200: '#ddd6fe', 300: '#c4b5fd', 400: '#a78bfa', 500: '#8b5cf6', 600: '#7c3aed', 700: '#6d28d9', 800: '#5b21b6', 900: '#4c1d95', 950: '#2e1065' },
purple: { 50: '#faf5ff', 100: '#f3e8ff', 200: '#e9d5ff', 300: '#d8b4fe', 400: '#c084fc', 500: '#a855f7', 600: '#9333ea', 700: '#7e22ce', 800: '#6b21a8', 900: '#581c87', 950: '#3b0764' },
fuchsia: { 50: '#fdf4ff', 100: '#fae8ff', 200: '#f5d0fe', 300: '#f0abfc', 400: '#e879f9', 500: '#d946ef', 600: '#c026d3', 700: '#a21caf', 800: '#86198f', 900: '#701a75', 950: '#4a044e' },
pink: { 50: '#fdf2f8', 100: '#fce7f3', 200: '#fbcfe8', 300: '#f9a8d4', 400: '#f472b6', 500: '#ec4899', 600: '#db2777', 700: '#be185d', 800: '#9d174d', 900: '#831843', 950: '#500724' },
rose: { 50: '#fff1f2', 100: '#ffe4e6', 200: '#fecdd3', 300: '#fda4af', 400: '#fb7185', 500: '#f43f5e', 600: '#e11d48', 700: '#be123c', 800: '#9f1239', 900: '#881337', 950: '#4c0519' },
slate: { 50: '#f8fafc', 100: '#f1f5f9', 200: '#e2e8f0', 300: '#cbd5e1', 400: '#94a3b8', 500: '#64748b', 600: '#475569', 700: '#334155', 800: '#1e293b', 900: '#0f172a', 950: '#020617' },
gray: { 50: '#f9fafb', 100: '#f3f4f6', 200: '#e5e7eb', 300: '#d1d5db', 400: '#9ca3af', 500: '#6b7280', 600: '#4b5563', 700: '#374151', 800: '#1f2937', 900: '#111827', 950: '#030712' },
zinc: { 50: '#fafafa', 100: '#f4f4f5', 200: '#e4e4e7', 300: '#d4d4d8', 400: '#a1a1aa', 500: '#71717a', 600: '#52525b', 700: '#3f3f46', 800: '#27272a', 900: '#18181b', 950: '#09090b' },
neutral: { 50: '#fafafa', 100: '#f5f5f5', 200: '#e5e5e5', 300: '#d4d4d4', 400: '#a3a3a3', 500: '#737373', 600: '#525252', 700: '#404040', 800: '#262626', 900: '#171717', 950: '#0a0a0a' },
stone: { 50: '#fafaf9', 100: '#f5f5f4', 200: '#e7e5e4', 300: '#d6d3d1', 400: '#a8a29e', 500: '#78716c', 600: '#57534e', 700: '#44403c', 800: '#292524', 900: '#1c1917', 950: '#0c0a09' }
},
semantic: {
fontFamily: 'system-ui,-apple-system,"Segoe UI",Roboto,"Helvetica Neue",Arial,"Noto Sans","Liberation Sans",sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol","Noto Color Emoji"',
fontFeatureSettings: 'normal',
transitionDuration: '0.2s',
focusRing: {
width: '1px',
style: 'solid',
color: '{primary.500}',
offset: '2px'
},
anchorGutter: '2px',
primary: {
50: '{emerald.50}',
100: '{emerald.100}',
200: '{emerald.200}',
300: '{emerald.300}',
400: '{emerald.400}',
500: '{emerald.500}',
600: '{emerald.600}',
700: '{emerald.700}',
800: '{emerald.800}',
900: '{emerald.900}',
950: '{emerald.950}'
},
colorScheme: {
light: {
surface: {
0: '#ffffff',
50: '{slate.50}',
100: '{slate.100}',
200: '{slate.200}',
300: '{slate.300}',
400: '{slate.400}',
500: '{slate.500}',
600: '{slate.600}',
700: '{slate.700}',
800: '{slate.800}',
900: '{slate.900}',
950: '{slate.950}'
},
primary: {
color: '{primary.500}',
inverseColor: '#ffffff',
hoverColor: '{primary.600}',
activeColor: '{primary.700}'
},
highlight: {
background: '{primary.50}',
focusBackground: '{primary.100}',
color: '{primary.700}',
focusColor: '{primary.800}'
},
maskBackground: 'rgba(0,0,0,0.4)',
formField: {
background: '{surface.0}',
disabledBackground: '{surface.200}',
filledBackground: '{surface.50}',
filledFocusBackground: '{surface.0}',
borderColor: '{surface.300}',
hoverBorderColor: '{surface.400}',
focusBorderColor: '{primary.color}',
invalidBorderColor: '{red.400}',
color: '{surface.700}',
disabledColor: '{surface.500}',
placeholderColor: '{surface.500}',
floatLabelColor: '{surface.500}',
floatLabelFocusColor: '{surface.500}',
floatLabelInvalidColor: '{red.400}',
boxShadow: '0 0 #0000, 0 0 #0000, 0 1px 2px 0 rgba(18, 18, 23, 0.05)'
}
},
dark: {
surface: {
0: '#ffffff',
50: '{zinc.50}',
100: '{zinc.100}',
200: '{zinc.200}',
300: '{zinc.300}',
400: '{zinc.400}',
500: '{zinc.500}',
600: '{zinc.600}',
700: '{zinc.700}',
800: '{zinc.800}',
900: '{zinc.900}',
950: '{zinc.950}'
},
primary: {
color: '{primary.400}',
inverseColor: '{surface.900}',
hoverColor: '{primary.300}',
activeColor: '{primary.200}'
},
highlight: {
background: 'color-mix(in srgb, {primary.400}, transparent 84%)',
focusBackground: 'color-mix(in srgb, {primary.400}, transparent 76%)',
color: 'rgba(255,255,255,.87)',
focusColor: 'rgba(255,255,255,.87)'
},
maskBackground: 'rgba(0,0,0,0.4)',
formField: {
background: '{surface.950}',
disabledBackground: '{surface.700}',
filledBackground: '{surface.800}',
filledFocusBackground: '{surface.950}',
borderColor: '{surface.700}',
hoverBorderColor: '{surface.600}',
focusBorderColor: '{primary.color}',
invalidBorderColor: '{red.300}',
color: '{surface.0}',
disabledColor: '{surface.400}',
placeholderColor: '{surface.400}',
floatLabelColor: '{surface.400}',
floatLabelFocusColor: '{surface.400}',
floatLabelInvalidColor: '{red.300}',
boxShadow: '0 0 #0000, 0 0 #0000, 0 1px 2px 0 rgba(18, 18, 23, 0.05)'
}
}
}
},
components: {
accordion,
// ... other components
}
};
`
}
};
}
};
</script>

View File

@ -1,8 +1,7 @@
<template>
<DocSectionText v-bind="$attrs">
<p>
PrimeVue utilizes <i>rem</i> units to make sure the components blend in with the rest of your UI perfectly. This also enables scaling, for example changing the size of the components is easy as configuring the font size of your document.
Code below sets the scale of the components based on <i>16px</i>. If you require bigger or smaller components, just change this variable and components will scale accordingly.
Lorem Ipsum.
</p>
</DocSectionText>
<DocSectionCode :code="code" hideToggleCode importCode hideStackBlitz />

View File

@ -1,14 +1,14 @@
<template>
<DocSectionText v-bind="$attrs">
<p>The <i>options</i> property defines the how the CSS would be generated from the design tokens of the preset.</p>
<h3>prefix</h3>
<h4>prefix</h4>
<p>The prefix of the CSS variables, defaults to <i>p</i>. For instance, the <i>primary.color</i> design token would be <i>var(--p-primary-color)</i>.</p>
<h3>darkModeSelector</h3>
<h4>darkModeSelector</h4>
<p>
The CSS rule to encapsulate the CSS variables of the dark mode, the default is the <i>system</i> to generate <i>@media (prefers-color-scheme: dark)</i>. If you need to make the dark mode toggleable based on the user selection define a
class selector such as <i>.app-dark</i> and toggle this class at the document root. See the dark mode toggle section below for example.
class selector such as <i>.app-dark</i> and toggle this class at the document root. See the dark mode toggle section for an example.
</p>
<h3>cssLayer</h3>
<h4>cssLayer</h4>
<p>
Defines whether the styles should be defined inside a <a href="https://developer.mozilla.org/en-US/docs/Web/CSS/@layer" target="_blank" rel="noopener noreferrer">CSS layer</a> named <i>primevue</i> or not. A CSS layer would be handy to
declare a custom cascade layer for easier customization. The default is <i>false</i>. View the CSS layer section for an example usage.

View File

@ -1,7 +1,6 @@
<template>
<DocSectionText v-bind="$attrs">
<p>The <i>theme</i> property is used to customize the initial theme that is preconfigured to be PrimeOne base with the Aura preset by default. The following is the default configuration and only needs to be defined for customization.</p>
<p></p>
</DocSectionText>
<DocSectionCode :code="code" hideToggleCode importCode hideStackBlitz />
</template>

View File

@ -0,0 +1,45 @@
<template>
<DocSectionText v-bind="$attrs">
<p>The design tokens of a specific component is defined at <i>components</i> layer. Overriding components tokens is not the recommended approach if you are building our own style, building your own preset should be preferred instead.</p>
</DocSectionText>
<DocSectionCode :code="code" hideToggleCode importCode hideStackBlitz />
</template>
<script>
export default {
data() {
return {
code: {
basic: `
const MyPreset = definePreset(Aura, {
components: {
card: {
colorScheme: {
light: {
root: {
background: '{surface.0}',
color: '{surface.700}'
},
subtitle: {
color: '{surface.500}'
}
},
dark: {
root: {
background: '{surface.900}',
color: '{surface.0}'
},
subtitle: {
color: '{surface.400}'
}
}
}
}
}
});
`
}
};
}
};
</script>

View File

@ -0,0 +1,34 @@
<template>
<DocSectionText v-bind="$attrs">
<p>The <i>definePreset</i> utility is used to customize an existing preset during the PrimeVue setup. The first parameter is the preset to customize and the second is the design tokens to override.</p>
</DocSectionText>
<DocSectionCode :code="code" hideToggleCode importCode hideStackBlitz />
</template>
<script>
export default {
data() {
return {
code: {
basic: `
import PrimeVue from 'primevue/config';
import { definePreset } from 'primevue/themes';
import PrimeOne from 'primevue/themes/primeone';
import Aura from 'primevue/themes/primeone/aura';
const MyPreset = definePreset(Aura, {
//Your customizations, see the following sections for examples
});
app.use(PrimeVue, {
theme: {
base: PrimeOne,
preset: MyPreset
}
});
`
}
};
}
};
</script>

View File

@ -0,0 +1,29 @@
<template>
<DocSectionText v-bind="$attrs">
<p>Focus ring defines the outline width, style, color and offset. Let's use a thicker ring with the primary color for the outline.</p>
</DocSectionText>
<DocSectionCode :code="code" hideToggleCode importCode hideStackBlitz />
</template>
<script>
export default {
data() {
return {
code: {
basic: `
const MyPreset = definePreset(Aura, {
semantic: {
focusRing: {
width: '2px',
style: 'dashed',
color: '{primary.color}',
offset: '1px'
}
}
});
`
}
};
}
};
</script>

View File

@ -0,0 +1,27 @@
<template>
<DocSectionText v-bind="$attrs">
<p>
Presets use the native font stack by default for optimal rendering depending on the platform. If you have installed a specific font stack in your application, use the <i>fontFamily</i> and the optional <i>fontVariationSettings</i> tokens
to define your custom font for PrimeVue components. As example, let's configure the popular <i>Inter</i> for PrimeVue.
</p>
</DocSectionText>
<DocSectionCode :code="code" hideToggleCode importCode hideStackBlitz />
</template>
<script>
export default {
data() {
return {
code: {
basic: `
const MyPreset = definePreset(Aura, {
semantic: {
fontFamily: 'Inter, sans-serif'
}
});
`
}
};
}
};
</script>

View File

@ -0,0 +1,38 @@
<template>
<DocSectionText v-bind="$attrs">
<p>
The design tokens of the form input components are derived from the <i>form.field</i> token group. This customization example changes border color to primary on hover. Any component that depends on this semantic token such as
<i>dropdown.hover.border.color</i> and <i>textarea.hover.border.color</i> would receive the change.
</p>
</DocSectionText>
<DocSectionCode :code="code" hideToggleCode importCode hideStackBlitz />
</template>
<script>
export default {
data() {
return {
code: {
basic: `
const MyPreset = definePreset(Aura, {
semantic: {
colorScheme: {
light: {
formField: {
hoverBorderColor: '{primary.color}'
}
},
dark: {
formField: {
hoverBorderColor: '{primary.color}'
}
}
}
}
});
`
}
};
}
};
</script>

View File

@ -0,0 +1,69 @@
<template>
<DocSectionText v-bind="$attrs">
<p>
The <i>noir</i> mode is the nickname of a variant that uses black tones as the primary and requires and additional <i>colorScheme</i> configuration to implement. A sample preset configuration with black and white variants as the primary
color;
</p>
</DocSectionText>
<DocSectionCode :code="code" hideToggleCode importCode hideStackBlitz />
</template>
<script>
export default {
data() {
return {
code: {
basic: `
const Noir = definePreset(Aura, {
semantic: {
primary: {
50: '{zinc.50}',
100: '{zinc.100}',
200: '{zinc.200}',
300: '{zinc.300}',
400: '{zinc.400}',
500: '{zinc.500}',
600: '{zinc.600}',
700: '{zinc.700}',
800: '{zinc.800}',
900: '{zinc.900}',
950: '{zinc.950}'
},
colorScheme: {
light: {
primary: {
color: '{zinc.950}',
inverseColor: '#ffffff',
hoverColor: '{zinc.900}',
activeColor: '{zinc.800}'
},
highlight: {
background: '{zinc.950}',
focusBackground: '{zinc.700}',
color: '#ffffff',
focusColor: '#ffffff'
}
},
dark: {
primary: {
color: '{zinc.50}',
inverseColor: '{zinc.950}',
hoverColor: '{zinc.100}',
activeColor: '{zinc.200}'
},
highlight: {
background: 'rgba(250, 250, 250, .16)',
focusBackground: 'rgba(250, 250, 250, .24)',
color: 'rgba(255,255,255,.87)',
focusColor: 'rgba(255,255,255,.87)'
}
}
}
}
});
`
}
};
}
};
</script>

View File

@ -0,0 +1,36 @@
<template>
<DocSectionText v-bind="$attrs">
<p>The <i>primary</i> defines the main color palette, default value maps to the <i>emerald</i> primitive token. Let's setup to use <i>indigo</i> instead.</p>
</DocSectionText>
<DocSectionCode :code="code" hideToggleCode importCode hideStackBlitz />
</template>
<script>
export default {
data() {
return {
code: {
basic: `
const MyPreset = definePreset(Aura, {
semantic: {
primary: {
50: '{indigo.50}',
100: '{indigo.100}',
200: '{indigo.200}',
300: '{indigo.300}',
400: '{indigo.400}',
500: '{indigo.500}',
600: '{indigo.600}',
700: '{indigo.700}',
800: '{indigo.800}',
900: '{indigo.900}',
950: '{indigo.950}'
}
}
});
`
}
};
}
};
</script>

View File

@ -0,0 +1,60 @@
<template>
<DocSectionText v-bind="$attrs">
<p>
The color scheme palette that varies between light and dark modes is specified with the surface tokens. Example below uses <i>zinc</i> for light mode and <i>slategray</i> for dark mode. With this setting, light mode, would have a
grayscale tone and dark mode would include blue tone.
</p>
</DocSectionText>
<DocSectionCode :code="code" hideToggleCode importCode hideStackBlitz />
</template>
<script>
export default {
data() {
return {
code: {
basic: `
const MyPreset = definePreset(Aura, {
semantic: {
colorScheme: {
light: {
surface: {
0: '#ffffff',
50: '{zinc.50}',
100: '{zinc.100}',
200: '{zinc.200}',
300: '{zinc.300}',
400: '{zinc.400}',
500: '{zinc.500}',
600: '{zinc.600}',
700: '{zinc.700}',
800: '{zinc.800}',
900: '{zinc.900}',
950: '{zinc.950}'
}
},
dark: {
surface: {
0: '#ffffff',
50: '{slate.50}',
100: '{slate.100}',
200: '{slate.200}',
300: '{slate.300}',
400: '{slate.400}',
500: '{slate.500}',
600: '{slate.600}',
700: '{slate.700}',
800: '{slate.800}',
900: '{slate.900}',
950: '{slate.950}'
}
}
}
}
});
`
}
};
}
};
</script>

View File

@ -0,0 +1,22 @@
<template>
<DocSectionText v-bind="$attrs">
<p>The <i>$dt</i> function returns the information about a token like the full path and value. This would be useful if you need to access tokens programmatically.</p>
</DocSectionText>
<DocSectionCode :code="code" hideToggleCode importCode hideStackBlitz />
</template>
<script>
export default {
data() {
return {
code: {
basic: `
import { $dt } from 'primevue/themes';
const value = $dt('primary.color', 'value');
`
}
};
}
};
</script>

View File

@ -0,0 +1,22 @@
<template>
<DocSectionText v-bind="$attrs">
<p>Returns shades and tints of a given color from 50 to 950 as an array.</p>
</DocSectionText>
<DocSectionCode :code="code" hideToggleCode importCode hideStackBlitz />
</template>
<script>
export default {
data() {
return {
code: {
basic: `
import { palette } from 'primevue/themes';
const values = palette('#10b981');
`
}
};
}
};
</script>

View File

@ -0,0 +1,40 @@
<template>
<DocSectionText v-bind="$attrs">
<p>Merges the provided tokens to the current preset, an example would be changing the primary color palette dynamically.</p>
</DocSectionText>
<DocSectionCode :code="code" hideToggleCode importCode hideStackBlitz />
</template>
<script>
export default {
data() {
return {
code: {
basic: `
import { updatePreset } from 'primevue/themes';
const changePrimaryColor() {
updatePreset({
semantic: {
primary: {
50: '{indigo.50}',
100: '{indigo.100}',
200: '{indigo.200}',
300: '{indigo.300}',
400: '{indigo.400}',
500: '{indigo.500}',
600: '{indigo.600}',
700: '{indigo.700}',
800: '{indigo.800}',
900: '{indigo.900}',
950: '{indigo.950}'
}
}
})
}
`
}
};
}
};
</script>

View File

@ -0,0 +1,24 @@
<template>
<DocSectionText v-bind="$attrs">
<p>Replaces the current presets entirely, common use case is changing the preset dynamically at runtime.</p>
</DocSectionText>
<DocSectionCode :code="code" hideToggleCode importCode hideStackBlitz />
</template>
<script>
export default {
data() {
return {
code: {
basic: `
import { usePreset } from 'primevue/themes';
const onButtonClick() {
usePreset(MyPreset);
}
`
}
};
}
};
</script>

View File

@ -0,0 +1,27 @@
<template>
<DocSectionText v-bind="$attrs">
<p>Replaces the theme including the base and the preset such as from PrimeOne to Material. Note that the built-in Material theme is under development.</p>
</DocSectionText>
<DocSectionCode :code="code" hideToggleCode importCode hideStackBlitz />
</template>
<script>
export default {
data() {
return {
code: {
basic: `
import { useTheme } from 'primevue/themes';
const changeTheme() {
useTheme({
base: MaterialDesign,
preset: M3
});
}
`
}
};
}
};
</script>

View File

@ -20,13 +20,28 @@
<script>
import ArchitectureDoc from '@/doc/theming/styled/ArchitectureDoc.vue';
import CSSLayerDoc from '@/doc/theming/styled/CSSLayerDoc.vue';
import CSSModulesDoc from '@/doc/theming/styled/CSSModulesDoc.vue';
import ColorsDoc from '@/doc/theming/styled/ColorsDoc.vue';
import DarkModeToggleDoc from '@/doc/theming/styled/DarkModeToggleDoc.vue';
import PresetsDoc from '@/doc/theming/styled/PresetsDoc.vue';
import ScaleDoc from '@/doc/theming/styled/ScaleDoc.vue';
import ScopedCSSDoc from '@/doc/theming/styled/ScopedCSSDoc.vue';
import CSSLayerDoc from '@/doc/theming/styled/CSSLayerDoc.vue';
import DarkModeToggleDoc from '@/doc/theming/styled/DarkModeToggleDoc.vue';
import OptionsDoc from '@/doc/theming/styled/configuration/OptionsDoc.vue';
import ThemeDoc from '@/doc/theming/styled/configuration/ThemeDoc.vue';
import ComponentDoc from '@/doc/theming/styled/customization/ComponentDoc.vue';
import DefinePresetDoc from '@/doc/theming/styled/customization/DefinePresetDoc.vue';
import FocusRingDoc from '@/doc/theming/styled/customization/FocusRingDoc.vue';
import FontDoc from '@/doc/theming/styled/customization/FontDoc.vue';
import FormsDoc from '@/doc/theming/styled/customization/FormsDoc.vue';
import NoirDoc from '@/doc/theming/styled/customization/NoirDoc.vue';
import PrimaryDoc from '@/doc/theming/styled/customization/PrimaryDoc.vue';
import SurfaceDoc from '@/doc/theming/styled/customization/SurfaceDoc.vue';
import DTDoc from '@/doc/theming/styled/utils/DTDoc.vue';
import PaletteDoc from '@/doc/theming/styled/utils/PaletteDoc.vue';
import UpdatePresetDoc from '@/doc/theming/styled/utils/UpdatePresetDoc.vue';
import UsePresetDoc from '@/doc/theming/styled/utils/UsePresetDoc.vue';
import UseThemeDoc from '@/doc/theming/styled/utils/UseThemeDoc.vue';
export default {
data() {
@ -39,7 +54,7 @@ export default {
},
{
id: 'configuration',
label: 'Configuration',
label: 'Configuration API',
children: [
{
id: 'theme',
@ -53,6 +68,93 @@ export default {
}
]
},
{
id: 'presets',
label: 'Presets',
component: PresetsDoc
},
{
id: 'customization',
label: 'Customization',
children: [
{
id: 'definepreset',
label: 'definePreset',
component: DefinePresetDoc
},
{
id: 'primary',
label: 'Primary',
component: PrimaryDoc
},
{
id: 'noir',
label: 'Noir',
component: NoirDoc
},
{
id: 'surface',
label: 'Surface',
component: SurfaceDoc
},
{
id: 'font',
label: 'Font',
component: FontDoc
},
{
id: 'forms',
label: 'Forms',
component: FormsDoc
},
{
id: 'focusring',
label: 'Focus Ring',
component: FocusRingDoc
},
{
id: 'component',
label: 'Component',
component: ComponentDoc
}
]
},
{
id: 'utils',
label: 'Utils',
children: [
{
id: 'usepreset',
label: 'usePreset',
component: UsePresetDoc
},
{
id: 'updatepreset',
label: 'updatePreset',
component: UpdatePresetDoc
},
{
id: 'usetheme',
label: 'useTheme',
component: UseThemeDoc
},
{
id: 'dt',
label: '$dt',
component: DTDoc
},
{
id: 'Palette',
label: 'palette',
component: PaletteDoc
}
]
},
{
id: 'colors',
label: 'Colors',
component: ColorsDoc
},
{
id: 'darkmodetoggle',
label: 'Dark Mode Toggle',