spoko-design-system 0.2.90 → 0.2.92
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.astro/settings.json +4 -4
- package/.github/dependabot.yml +11 -11
- package/.github/todo.yml +3 -3
- package/.github/workflows/deploy.yml +39 -39
- package/.stackblitzrc +5 -5
- package/.vscode/extensions.json +5 -5
- package/.vscode/launch.json +11 -11
- package/.vscode/settings.json +5 -5
- package/LICENSE +21 -21
- package/README.md +114 -114
- package/astro-i18next.config.mjs +17 -17
- package/astro-i18next.config.ts +10 -10
- package/astro.config.mjs +83 -83
- package/dev-dist/sw.js +91 -91
- package/dev-dist/workbox-c676b6d3.js +3391 -3391
- package/icon.config.ts +224 -224
- package/index.ts +62 -62
- package/package.json +116 -116
- package/public/fonts/lg.svg +53 -53
- package/public/fonts/vwhead-bold-demo.html +549 -549
- package/public/fonts/vwhead-regular-demo.html +549 -549
- package/public/fonts/vwtext-bold-demo.html +549 -549
- package/public/fonts/vwtext-regular-demo.html +549 -549
- package/public/github.svg +3 -3
- package/public/grid_dot.svg +4 -4
- package/public/linkedin.svg +44 -44
- package/public/locales/en/translation.json +8 -8
- package/public/locales/pl/translation.json +8 -8
- package/public/make-scrollable-code-focusable.js +3 -3
- package/public/pagefind.yml +3 -3
- package/public/polo.blue.svg +29 -29
- package/public/spoko.space.svg +71 -71
- package/public/twitter.svg +46 -46
- package/renovate.json +6 -6
- package/sandbox.config.json +11 -11
- package/src/MyComponent.astro +8 -8
- package/src/components/Badge.vue +19 -19
- package/src/components/Badges.vue +21 -21
- package/src/components/Breadcrumbs.vue +107 -107
- package/src/components/Button.vue +63 -63
- package/src/components/ButtonCopy.vue +36 -36
- package/src/components/Card.astro +27 -27
- package/src/components/Carousel.astro +26 -26
- package/src/components/Category/CategoriesCarousel.astro +101 -101
- package/src/components/Category/CategoryDetails.astro +134 -134
- package/src/components/Category/CategoryLink.vue +23 -23
- package/src/components/Category/CategorySidebarToggler.vue +9 -9
- package/src/components/Category/CategoryTile.astro +49 -49
- package/src/components/Category/CategoryViewToggler.astro +107 -107
- package/src/components/Category/SubCategoryLink.vue +29 -29
- package/src/components/CategoryLink.astro +18 -18
- package/src/components/Copyright.astro +12 -12
- package/src/components/Date.astro +7 -7
- package/src/components/Faq.astro +33 -33
- package/src/components/FaqItem.astro +96 -96
- package/src/components/FeaturesList.vue +41 -41
- package/src/components/FuckRussia.vue +62 -62
- package/src/components/HandDrive.astro +29 -29
- package/src/components/Header/Header.astro +210 -210
- package/src/components/Header/SkipToContent.astro +1 -1
- package/src/components/Headline.vue +48 -48
- package/src/components/Image.astro +30 -30
- package/src/components/Jumbatron.vue +40 -40
- package/src/components/LeftSidebar.astro +53 -53
- package/src/components/MainColors.vue +23 -23
- package/src/components/MainInput.vue +15 -15
- package/src/components/Modal.astro +27 -27
- package/src/components/PageContent.astro +5 -5
- package/src/components/PartNumber.vue +27 -27
- package/src/components/PostHeader.astro +103 -103
- package/src/components/PrCode.vue +141 -141
- package/src/components/Product/ProductButton.vue +18 -18
- package/src/components/Product/ProductCarousel.astro +35 -35
- package/src/components/Product/ProductCodes.vue +174 -174
- package/src/components/Product/ProductEngineType.vue +42 -42
- package/src/components/Product/ProductImage.astro +40 -40
- package/src/components/Product/ProductLink.astro +101 -101
- package/src/components/Product/ProductLink.vue +59 -59
- package/src/components/Product/ProductLinkInfo.astro +37 -37
- package/src/components/Product/ProductNumber.astro +61 -61
- package/src/components/ProductCarousel.astro +38 -38
- package/src/components/ProductCodes.vue +39 -39
- package/src/components/ProductDetailName.vue +52 -52
- package/src/components/ProductDetailsList.vue +65 -65
- package/src/components/ProductTile.astro +48 -48
- package/src/components/Quote.vue +23 -23
- package/src/components/ReloadPrompt.astro +50 -50
- package/src/components/SlimBanner.vue +72 -72
- package/src/components/Table.vue +32 -32
- package/src/components/TableOfContents.astro +15 -15
- package/src/components/Translations.vue +23 -23
- package/src/components/flags/FlagPL.vue +3 -3
- package/src/components/flags/FlagUA.vue +2 -2
- package/src/components/layout/Container.astro +7 -7
- package/src/components/layout/Header.astro +80 -80
- package/src/config.ts +56 -56
- package/src/design.config.ts +98 -98
- package/src/env.d.ts +6 -6
- package/src/layouts/Layout.astro +60 -60
- package/src/layouts/MainLayout.astro +81 -81
- package/src/layouts/partials/FooterCommon.astro +4 -4
- package/src/layouts/partials/HeadCommon.astro +44 -44
- package/src/layouts/partials/HeadSEO.astro +41 -41
- package/src/pages/components/badges.mdx +57 -57
- package/src/pages/components/breadcrumbs.mdx +139 -139
- package/src/pages/components/buttons.mdx +253 -253
- package/src/pages/components/card.mdx +294 -294
- package/src/pages/components/carousel.mdx +62 -62
- package/src/pages/components/copyright.mdx +42 -42
- package/src/pages/components/details-list.mdx +115 -115
- package/src/pages/components/features-list.mdx +37 -37
- package/src/pages/components/flags.mdx +49 -49
- package/src/pages/components/fuck-russia.mdx +39 -39
- package/src/pages/components/hand-drive.mdx +38 -38
- package/src/pages/components/headline.mdx +152 -152
- package/src/pages/components/icons.astro +135 -135
- package/src/pages/components/image.mdx +513 -513
- package/src/pages/components/input.mdx +45 -45
- package/src/pages/components/jumbatron.mdx +95 -95
- package/src/pages/components/modal.mdx +64 -64
- package/src/pages/components/post-header.mdx +60 -60
- package/src/pages/components/pr-code.mdx +65 -65
- package/src/pages/components/product-number.mdx +58 -58
- package/src/pages/components/product-tile.mdx +51 -51
- package/src/pages/components/quote.mdx +33 -33
- package/src/pages/components/slimbanner.mdx +35 -35
- package/src/pages/components/table.mdx +108 -108
- package/src/pages/core/colors.mdx +10 -10
- package/src/pages/core/grid.mdx +89 -89
- package/src/pages/core/introduction.mdx +77 -77
- package/src/pages/core/shadows.astro +20 -20
- package/src/pages/core/typography.astro +47 -47
- package/src/pages/index.astro +126 -126
- package/src/pages/patterns/introduction.mdx +60 -60
- package/src/pwa.ts +12 -12
- package/src/styles/_variables.scss +70 -70
- package/src/styles/base/base.css +184 -184
- package/src/styles/base/grid.css +92 -92
- package/src/styles/base/typography.css +70 -70
- package/src/styles/content.css +73 -73
- package/src/styles/main.css +7 -7
- package/src/types/Product.ts +31 -31
- package/src/types/astro.d.ts +3 -3
- package/src/utils/product/getPriceFormatted.ts +15 -15
- package/src/utils/product/getProductChecklist.ts +17 -17
- package/src/utils/product/useFormatProductNumber.ts +41 -41
- package/src/utils/seo/getShorterDescription.ts +14 -14
- package/src/utils/text/formatDate.ts +5 -5
- package/src/utils/text/formatLocaleNumber.ts +6 -6
- package/src/utils/text/formatPad.ts +12 -12
- package/src/utils/text/getNumberFormatted.ts +33 -33
- package/src/utils/text/getTranslatedLink.ts +5 -5
- package/src/utils/text.ts +19 -19
- package/tailwind.config.cjs +8 -8
- package/tsconfig.json +28 -28
- package/uno-config/index.ts +61 -58
- package/uno-config/theme/breakpoints.ts +9 -9
- package/uno-config/theme/colors.ts +66 -66
- package/uno-config/theme/dimensions.ts +17 -17
- package/uno-config/theme/effects.ts +14 -14
- package/uno-config/theme/grid.ts +10 -10
- package/uno-config/theme/index.ts +25 -27
- package/uno-config/theme/shortcuts/buttons.ts +38 -38
- package/uno-config/theme/shortcuts/components.ts +82 -82
- package/uno-config/theme/shortcuts/index.ts +16 -16
- package/uno-config/theme/shortcuts/layout.ts +58 -58
- package/uno-config/theme/typography.ts +29 -29
- package/uno.config.ts +2 -2
package/tsconfig.json
CHANGED
|
@@ -1,29 +1,29 @@
|
|
|
1
|
-
{
|
|
2
|
-
"include": ["env.d.ts", "src/**/*", "src/**/*.vue", "src/**/*.astro", "src/**/*.d.ts", "*.ts"],
|
|
3
|
-
"compilerOptions": {
|
|
4
|
-
"baseUrl": "src",
|
|
5
|
-
|
|
6
|
-
// Enable JSON imports.
|
|
7
|
-
"resolveJsonModule": true,
|
|
8
|
-
|
|
9
|
-
// Enable stricter transpilation for better output.
|
|
10
|
-
"isolatedModules": true,
|
|
11
|
-
|
|
12
|
-
// Astro will directly run your TypeScript code, no transpilation needed.
|
|
13
|
-
"noEmit": true,
|
|
14
|
-
|
|
15
|
-
"target": "esnext",
|
|
16
|
-
"useDefineForClassFields": true,
|
|
17
|
-
"module": "esnext",
|
|
18
|
-
"moduleResolution": "node",
|
|
19
|
-
"jsx": "preserve",
|
|
20
|
-
"allowJs": true,
|
|
21
|
-
"types": ["vite/client", "vitest", "@vue/runtime-dom", "@astrojs/ts", "@astrojs/ts-plugin", "unplugin-vue-macros/macros-global", "unplugin-icons/types/astro"],
|
|
22
|
-
"paths": {
|
|
23
|
-
"@components/*": ["components/*"],
|
|
24
|
-
"@utils/*": ["utils/*"],
|
|
25
|
-
"@types/*": ["types/*"]
|
|
26
|
-
}
|
|
27
|
-
},
|
|
28
|
-
"exclude": ["dist", "node_modules"]
|
|
1
|
+
{
|
|
2
|
+
"include": ["env.d.ts", "src/**/*", "src/**/*.vue", "src/**/*.astro", "src/**/*.d.ts", "*.ts"],
|
|
3
|
+
"compilerOptions": {
|
|
4
|
+
"baseUrl": "src",
|
|
5
|
+
|
|
6
|
+
// Enable JSON imports.
|
|
7
|
+
"resolveJsonModule": true,
|
|
8
|
+
|
|
9
|
+
// Enable stricter transpilation for better output.
|
|
10
|
+
"isolatedModules": true,
|
|
11
|
+
|
|
12
|
+
// Astro will directly run your TypeScript code, no transpilation needed.
|
|
13
|
+
"noEmit": true,
|
|
14
|
+
|
|
15
|
+
"target": "esnext",
|
|
16
|
+
"useDefineForClassFields": true,
|
|
17
|
+
"module": "esnext",
|
|
18
|
+
"moduleResolution": "node",
|
|
19
|
+
"jsx": "preserve",
|
|
20
|
+
"allowJs": true,
|
|
21
|
+
"types": ["vite/client", "vitest", "@vue/runtime-dom", "@astrojs/ts", "@astrojs/ts-plugin", "unplugin-vue-macros/macros-global", "unplugin-icons/types/astro"],
|
|
22
|
+
"paths": {
|
|
23
|
+
"@components/*": ["components/*"],
|
|
24
|
+
"@utils/*": ["utils/*"],
|
|
25
|
+
"@types/*": ["types/*"]
|
|
26
|
+
}
|
|
27
|
+
},
|
|
28
|
+
"exclude": ["dist", "node_modules"]
|
|
29
29
|
}
|
package/uno-config/index.ts
CHANGED
|
@@ -1,59 +1,62 @@
|
|
|
1
|
-
// uno-config/index.ts
|
|
2
|
-
import type { UserConfig, UserShortcuts } from 'unocss'
|
|
3
|
-
import { defineConfig } from 'unocss';
|
|
4
|
-
import {
|
|
5
|
-
transformerDirectives,
|
|
6
|
-
transformerVariantGroup,
|
|
7
|
-
presetAttributify,
|
|
8
|
-
presetIcons,
|
|
9
|
-
presetTypography,
|
|
10
|
-
presetUno,
|
|
11
|
-
presetWebFonts,
|
|
12
|
-
} from 'unocss';
|
|
13
|
-
|
|
14
|
-
import { shortcuts } from './theme/shortcuts';
|
|
15
|
-
import { theme } from './theme';
|
|
16
|
-
|
|
17
|
-
interface CustomConfig extends Partial<UserConfig> {
|
|
18
|
-
shortcuts?: UserShortcuts;
|
|
19
|
-
theme?: Partial<typeof theme>;
|
|
20
|
-
}
|
|
21
|
-
|
|
22
|
-
export function createSdsConfig(customConfig: CustomConfig = {}) {
|
|
23
|
-
return defineConfig({
|
|
24
|
-
transformers: [
|
|
25
|
-
transformerDirectives(),
|
|
26
|
-
transformerVariantGroup(),
|
|
27
|
-
],
|
|
28
|
-
shortcuts: {
|
|
29
|
-
...shortcuts,
|
|
30
|
-
...(customConfig.shortcuts || {})
|
|
31
|
-
},
|
|
32
|
-
theme: {
|
|
33
|
-
...theme,
|
|
34
|
-
...(customConfig.theme || {})
|
|
35
|
-
},
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
1
|
+
// uno-config/index.ts
|
|
2
|
+
import type { UserConfig, UserShortcuts } from 'unocss'
|
|
3
|
+
import { defineConfig } from 'unocss';
|
|
4
|
+
import {
|
|
5
|
+
transformerDirectives,
|
|
6
|
+
transformerVariantGroup,
|
|
7
|
+
presetAttributify,
|
|
8
|
+
presetIcons,
|
|
9
|
+
presetTypography,
|
|
10
|
+
presetUno,
|
|
11
|
+
presetWebFonts,
|
|
12
|
+
} from 'unocss';
|
|
13
|
+
|
|
14
|
+
import { shortcuts } from './theme/shortcuts';
|
|
15
|
+
import { theme } from './theme';
|
|
16
|
+
|
|
17
|
+
interface CustomConfig extends Partial<UserConfig> {
|
|
18
|
+
shortcuts?: UserShortcuts;
|
|
19
|
+
theme?: Partial<typeof theme>;
|
|
20
|
+
}
|
|
21
|
+
|
|
22
|
+
export function createSdsConfig(customConfig: CustomConfig = {}) {
|
|
23
|
+
return defineConfig({
|
|
24
|
+
transformers: [
|
|
25
|
+
transformerDirectives(),
|
|
26
|
+
transformerVariantGroup(),
|
|
27
|
+
],
|
|
28
|
+
shortcuts: {
|
|
29
|
+
...shortcuts,
|
|
30
|
+
...(customConfig.shortcuts || {})
|
|
31
|
+
},
|
|
32
|
+
theme: {
|
|
33
|
+
...theme,
|
|
34
|
+
...(customConfig.theme || {})
|
|
35
|
+
},
|
|
36
|
+
safelist: [
|
|
37
|
+
'md:grid-cols-product'
|
|
38
|
+
],
|
|
39
|
+
presets: [
|
|
40
|
+
presetUno(),
|
|
41
|
+
presetAttributify(),
|
|
42
|
+
presetIcons({
|
|
43
|
+
scale: 1.2,
|
|
44
|
+
warn: true,
|
|
45
|
+
prefix: 'i-',
|
|
46
|
+
extraProperties: {
|
|
47
|
+
'display': 'inline-block',
|
|
48
|
+
'vertical-align': 'middle',
|
|
49
|
+
},
|
|
50
|
+
}),
|
|
51
|
+
presetTypography(),
|
|
52
|
+
presetWebFonts({
|
|
53
|
+
provider: 'none',
|
|
54
|
+
fonts: theme.fontFamily
|
|
55
|
+
})
|
|
56
|
+
],
|
|
57
|
+
...customConfig
|
|
58
|
+
});
|
|
59
|
+
}
|
|
60
|
+
|
|
61
|
+
export * from './theme';
|
|
59
62
|
export * from './theme/shortcuts';
|
|
@@ -1,10 +1,10 @@
|
|
|
1
|
-
// theme/breakpoints.ts
|
|
2
|
-
export const breakpoints = {
|
|
3
|
-
sm: '640px',
|
|
4
|
-
md: '768px',
|
|
5
|
-
lg: '1024px',
|
|
6
|
-
xl: '1280px',
|
|
7
|
-
'2xl': '1536px',
|
|
8
|
-
'3xl': '1920px',
|
|
9
|
-
'4xl': '2400px',
|
|
1
|
+
// theme/breakpoints.ts
|
|
2
|
+
export const breakpoints = {
|
|
3
|
+
sm: '640px',
|
|
4
|
+
md: '768px',
|
|
5
|
+
lg: '1024px',
|
|
6
|
+
xl: '1280px',
|
|
7
|
+
'2xl': '1536px',
|
|
8
|
+
'3xl': '1920px',
|
|
9
|
+
'4xl': '2400px',
|
|
10
10
|
};
|
|
@@ -1,67 +1,67 @@
|
|
|
1
|
-
// theme/colors.ts
|
|
2
|
-
export const colors = {
|
|
3
|
-
// Brand colors - core identity colors
|
|
4
|
-
brand: {
|
|
5
|
-
primary: '#0040c5', // Main brand color
|
|
6
|
-
secondary: '#00b0f0', // Supporting brand color
|
|
7
|
-
},
|
|
8
|
-
|
|
9
|
-
// Primary blues - main blue palette
|
|
10
|
-
blue: {
|
|
11
|
-
ultralight: '#dbeafe',
|
|
12
|
-
lightest: '#3b82f6', // Lightest shade
|
|
13
|
-
light: '#0069ff',
|
|
14
|
-
default: '#005ad7', // Default/base blue
|
|
15
|
-
medium: '#02307d',
|
|
16
|
-
darker: '#001e50',
|
|
17
|
-
darkest: '#000f28', // Darkest shade
|
|
18
|
-
wrc: '#0000c8', // Special WRC color
|
|
19
|
-
},
|
|
20
|
-
|
|
21
|
-
// Secondary colors - accent palette
|
|
22
|
-
accent: {
|
|
23
|
-
lightest: '#00b0f0',
|
|
24
|
-
light: '#0099da',
|
|
25
|
-
default: '#0087c1', // Default accent
|
|
26
|
-
dark: '#006ea6',
|
|
27
|
-
darker: '#00437a',
|
|
28
|
-
deepBlue: '#0c1a32',
|
|
29
|
-
},
|
|
30
|
-
|
|
31
|
-
// Neutral colors - grayscale
|
|
32
|
-
neutral: {
|
|
33
|
-
lightest: '#f3f4f6', // Lightest gray
|
|
34
|
-
lighter: '#e5e7eb',
|
|
35
|
-
light: '#b5bbc5',
|
|
36
|
-
default: '#9ca3af', // Base gray
|
|
37
|
-
dark: '#6a767d',
|
|
38
|
-
darker: '#4b5563',
|
|
39
|
-
black: '#000000', // Pure black
|
|
40
|
-
},
|
|
41
|
-
|
|
42
|
-
// Slate colors - gray-blue palette
|
|
43
|
-
slate: {
|
|
44
|
-
light: '#64748B',
|
|
45
|
-
default: '#475569',
|
|
46
|
-
dark: '#334155',
|
|
47
|
-
darkest: '#1e293b',
|
|
48
|
-
},
|
|
49
|
-
|
|
50
|
-
// System colors - functional colors
|
|
51
|
-
system: {
|
|
52
|
-
success: '#10B981', // Green - success state
|
|
53
|
-
warning: '#FBBF24', // Yellow - warning state
|
|
54
|
-
error: '#EF4444', // Red - error state
|
|
55
|
-
info: '#3B82F6', // Blue - information state
|
|
56
|
-
},
|
|
57
|
-
|
|
58
|
-
// States - interaction states
|
|
59
|
-
state: {
|
|
60
|
-
overlay: 'rgb(0 0 0 / 0.06)', // Overlay & Hover state
|
|
61
|
-
disabled: 'rgb(0 0 0 / 0.12)', // Disabled state
|
|
62
|
-
}
|
|
63
|
-
};
|
|
64
|
-
|
|
65
|
-
// Export types for TypeScript
|
|
66
|
-
export type Colors = typeof colors;
|
|
1
|
+
// theme/colors.ts
|
|
2
|
+
export const colors = {
|
|
3
|
+
// Brand colors - core identity colors
|
|
4
|
+
brand: {
|
|
5
|
+
primary: '#0040c5', // Main brand color
|
|
6
|
+
secondary: '#00b0f0', // Supporting brand color
|
|
7
|
+
},
|
|
8
|
+
|
|
9
|
+
// Primary blues - main blue palette
|
|
10
|
+
blue: {
|
|
11
|
+
ultralight: '#dbeafe',
|
|
12
|
+
lightest: '#3b82f6', // Lightest shade
|
|
13
|
+
light: '#0069ff',
|
|
14
|
+
default: '#005ad7', // Default/base blue
|
|
15
|
+
medium: '#02307d',
|
|
16
|
+
darker: '#001e50',
|
|
17
|
+
darkest: '#000f28', // Darkest shade
|
|
18
|
+
wrc: '#0000c8', // Special WRC color
|
|
19
|
+
},
|
|
20
|
+
|
|
21
|
+
// Secondary colors - accent palette
|
|
22
|
+
accent: {
|
|
23
|
+
lightest: '#00b0f0',
|
|
24
|
+
light: '#0099da',
|
|
25
|
+
default: '#0087c1', // Default accent
|
|
26
|
+
dark: '#006ea6',
|
|
27
|
+
darker: '#00437a',
|
|
28
|
+
deepBlue: '#0c1a32',
|
|
29
|
+
},
|
|
30
|
+
|
|
31
|
+
// Neutral colors - grayscale
|
|
32
|
+
neutral: {
|
|
33
|
+
lightest: '#f3f4f6', // Lightest gray
|
|
34
|
+
lighter: '#e5e7eb',
|
|
35
|
+
light: '#b5bbc5',
|
|
36
|
+
default: '#9ca3af', // Base gray
|
|
37
|
+
dark: '#6a767d',
|
|
38
|
+
darker: '#4b5563',
|
|
39
|
+
black: '#000000', // Pure black
|
|
40
|
+
},
|
|
41
|
+
|
|
42
|
+
// Slate colors - gray-blue palette
|
|
43
|
+
slate: {
|
|
44
|
+
light: '#64748B',
|
|
45
|
+
default: '#475569',
|
|
46
|
+
dark: '#334155',
|
|
47
|
+
darkest: '#1e293b',
|
|
48
|
+
},
|
|
49
|
+
|
|
50
|
+
// System colors - functional colors
|
|
51
|
+
system: {
|
|
52
|
+
success: '#10B981', // Green - success state
|
|
53
|
+
warning: '#FBBF24', // Yellow - warning state
|
|
54
|
+
error: '#EF4444', // Red - error state
|
|
55
|
+
info: '#3B82F6', // Blue - information state
|
|
56
|
+
},
|
|
57
|
+
|
|
58
|
+
// States - interaction states
|
|
59
|
+
state: {
|
|
60
|
+
overlay: 'rgb(0 0 0 / 0.06)', // Overlay & Hover state
|
|
61
|
+
disabled: 'rgb(0 0 0 / 0.12)', // Disabled state
|
|
62
|
+
}
|
|
63
|
+
};
|
|
64
|
+
|
|
65
|
+
// Export types for TypeScript
|
|
66
|
+
export type Colors = typeof colors;
|
|
67
67
|
export type ColorShade = keyof typeof colors;
|
|
@@ -1,18 +1,18 @@
|
|
|
1
|
-
// theme/dimensions.ts
|
|
2
|
-
export const dimensions = {
|
|
3
|
-
height: {
|
|
4
|
-
'tile': '104px',
|
|
5
|
-
'tile-mobile': '78px',
|
|
6
|
-
'sidebar': 'calc(100vh - 5.125rem)',
|
|
7
|
-
'full-mobile': 'calc(var(--vh, 1vh) * 100)',
|
|
8
|
-
'icon': '46px',
|
|
9
|
-
},
|
|
10
|
-
maxHeight: {
|
|
11
|
-
'icon': '46px',
|
|
12
|
-
'sidebar': 'calc(100vh - 5.125rem)',
|
|
13
|
-
},
|
|
14
|
-
minHeight: {
|
|
15
|
-
'tile': '104px',
|
|
16
|
-
'tile-mobile': '78px',
|
|
17
|
-
}
|
|
1
|
+
// theme/dimensions.ts
|
|
2
|
+
export const dimensions = {
|
|
3
|
+
height: {
|
|
4
|
+
'tile': '104px',
|
|
5
|
+
'tile-mobile': '78px',
|
|
6
|
+
'sidebar': 'calc(100vh - 5.125rem)',
|
|
7
|
+
'full-mobile': 'calc(var(--vh, 1vh) * 100)',
|
|
8
|
+
'icon': '46px',
|
|
9
|
+
},
|
|
10
|
+
maxHeight: {
|
|
11
|
+
'icon': '46px',
|
|
12
|
+
'sidebar': 'calc(100vh - 5.125rem)',
|
|
13
|
+
},
|
|
14
|
+
minHeight: {
|
|
15
|
+
'tile': '104px',
|
|
16
|
+
'tile-mobile': '78px',
|
|
17
|
+
}
|
|
18
18
|
};
|
|
@@ -1,15 +1,15 @@
|
|
|
1
|
-
// theme/effects.ts
|
|
2
|
-
export const effects = {
|
|
3
|
-
filter: {
|
|
4
|
-
blur: 'blur(5px)',
|
|
5
|
-
},
|
|
6
|
-
backgroundSize: {
|
|
7
|
-
full: '100% 100%',
|
|
8
|
-
},
|
|
9
|
-
aspectRatio: {
|
|
10
|
-
'4/3': '4 / 3',
|
|
11
|
-
},
|
|
12
|
-
cursor: {
|
|
13
|
-
'zoom-in': 'zoom-in',
|
|
14
|
-
},
|
|
1
|
+
// theme/effects.ts
|
|
2
|
+
export const effects = {
|
|
3
|
+
filter: {
|
|
4
|
+
blur: 'blur(5px)',
|
|
5
|
+
},
|
|
6
|
+
backgroundSize: {
|
|
7
|
+
full: '100% 100%',
|
|
8
|
+
},
|
|
9
|
+
aspectRatio: {
|
|
10
|
+
'4/3': '4 / 3',
|
|
11
|
+
},
|
|
12
|
+
cursor: {
|
|
13
|
+
'zoom-in': 'zoom-in',
|
|
14
|
+
},
|
|
15
15
|
};
|
package/uno-config/theme/grid.ts
CHANGED
|
@@ -1,11 +1,11 @@
|
|
|
1
|
-
// theme/grid.ts
|
|
2
|
-
export const gridTemplates = {
|
|
3
|
-
columns: {
|
|
4
|
-
16: 'repeat(16, minmax(0, 1fr))',
|
|
5
|
-
product: '15rem 20rem minmax(15rem, 1fr)',
|
|
6
|
-
productGrid: '15rem minmax(20rem, 1fr)',
|
|
7
|
-
productGalleryDesktop: 'calc(100% - 14% - 0.9375rem) 14%',
|
|
8
|
-
replacement: '6.25rem 12rem auto',
|
|
9
|
-
'details-desktop': '12.5rem calc(100% - 12.5rem - 1rem)'
|
|
10
|
-
}
|
|
1
|
+
// theme/grid.ts
|
|
2
|
+
export const gridTemplates = {
|
|
3
|
+
columns: {
|
|
4
|
+
16: 'repeat(16, minmax(0, 1fr))',
|
|
5
|
+
product: '15rem 20rem minmax(15rem, 1fr)',
|
|
6
|
+
productGrid: '15rem minmax(20rem, 1fr)',
|
|
7
|
+
productGalleryDesktop: 'calc(100% - 14% - 0.9375rem) 14%',
|
|
8
|
+
replacement: '6.25rem 12rem auto',
|
|
9
|
+
'details-desktop': '12.5rem calc(100% - 12.5rem - 1rem)'
|
|
10
|
+
}
|
|
11
11
|
};
|
|
@@ -1,28 +1,26 @@
|
|
|
1
|
-
// uno-config/theme/index.ts
|
|
2
|
-
import { colors } from './colors';
|
|
3
|
-
import { typography } from './typography';
|
|
4
|
-
import { breakpoints } from './breakpoints';
|
|
5
|
-
import { dimensions } from './dimensions';
|
|
6
|
-
import { effects } from './effects';
|
|
7
|
-
import { gridTemplates } from './grid';
|
|
8
|
-
|
|
9
|
-
export const theme = {
|
|
10
|
-
colors,
|
|
11
|
-
...typography,
|
|
12
|
-
...dimensions,
|
|
13
|
-
...effects,
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
effects,
|
|
27
|
-
gridTemplates,
|
|
1
|
+
// uno-config/theme/index.ts
|
|
2
|
+
import { colors } from './colors';
|
|
3
|
+
import { typography } from './typography';
|
|
4
|
+
import { breakpoints } from './breakpoints';
|
|
5
|
+
import { dimensions } from './dimensions';
|
|
6
|
+
import { effects } from './effects';
|
|
7
|
+
import { gridTemplates } from './grid';
|
|
8
|
+
|
|
9
|
+
export const theme = {
|
|
10
|
+
colors,
|
|
11
|
+
...typography,
|
|
12
|
+
...dimensions,
|
|
13
|
+
...effects,
|
|
14
|
+
gridTemplateColumn: gridTemplates.columns,
|
|
15
|
+
breakpoints,
|
|
16
|
+
screens: breakpoints,
|
|
17
|
+
};
|
|
18
|
+
|
|
19
|
+
export {
|
|
20
|
+
colors,
|
|
21
|
+
typography,
|
|
22
|
+
breakpoints,
|
|
23
|
+
dimensions,
|
|
24
|
+
effects,
|
|
25
|
+
gridTemplates,
|
|
28
26
|
};
|
|
@@ -1,39 +1,39 @@
|
|
|
1
|
-
// shortcuts/buttons.ts
|
|
2
|
-
export const buttonShortcuts = [
|
|
3
|
-
|
|
4
|
-
['btn', 'px-4 py-1 rounded inline-block bg-teal-600 text-white cursor-pointer hover:bg-teal-700 disabled:cursor-default disabled:bg-gray-600 disabled:opacity-50'],
|
|
5
|
-
['icon-btn', 'text-[0.9em] inline-block cursor-pointer select-none opacity-75 transition duration-200 ease-in-out hover:(opacity-100 text-teal-600)'],
|
|
6
|
-
|
|
7
|
-
// Primary buttons
|
|
8
|
-
['btn-primary', 'bg-accent-lightest border border-transparent hover:bg-accent-light inline-flex items-center justify-center shadow text-base text-blue-darker'],
|
|
9
|
-
['btn-primary-outline', 'border-accent-light border font-medium inline-flex items-center justify-center shadow text-base text-accent-default transition-all hover:(bg-accent-light text-white)'],
|
|
10
|
-
|
|
11
|
-
// Secondary buttons
|
|
12
|
-
['btn-secondary', 'bg-neutral-dark border border-transparent hover:bg-neutral-darker inline-flex items-center justify-center shadow text-base text-white'],
|
|
13
|
-
['btn-secondary-outline', 'border-neutral-dark border text-neutral-dark font-medium inline-flex items-center justify-center shadow text-base hover:(text-white bg-neutral-dark)'],
|
|
14
|
-
|
|
15
|
-
// Tertiary buttons
|
|
16
|
-
['btn-tertiary', 'inline-flex border border-transparent items-center font-medium text-center text-white bg-blue-darker hover:bg-accent-darker focus:ring-4 focus:outline-none focus:ring-blue-light'],
|
|
17
|
-
['btn-tertiary-outline', 'inline-flex border items-center font-medium text-center text-blue-darker border-blue-darker transition-colors focus:(ring-2 outline-none ring-blue-light)'],
|
|
18
|
-
|
|
19
|
-
// Utility buttons
|
|
20
|
-
['btn-text', 'text-neutral-dark border border-transparent hover:underline transition-all'],
|
|
21
|
-
['btn-tag', 'bg-blue-ultralight text-blue-darker font-medium mr-2 dark:bg-neutral-darker dark:text-blue-light border border-blue-default hover:border-blue-medium justify-center'],
|
|
22
|
-
|
|
23
|
-
// Size variants
|
|
24
|
-
['btn-normal', 'md:px-10 md:py-2 md:text-lg px-8 py-3 whitespace-nowrap'],
|
|
25
|
-
['btn-sm', 'px-6 py-2 text-sm whitespace-nowrap'],
|
|
26
|
-
['btn-xs', 'px-4 py-1 text-sm whitespace-nowrap'],
|
|
27
|
-
|
|
28
|
-
// Hover variants
|
|
29
|
-
['btn-white-hover', 'hover:(text-blue-darker bg-white border-blue-darker)'],
|
|
30
|
-
['btn-light-hover', 'hover:(text-blue-darker bg-accent-lightest border-accent-lightest)'],
|
|
31
|
-
['btn-medium-hover', 'hover:(text-white bg-brand-primary border-brand-primary)'],
|
|
32
|
-
['btn-dark-hover', 'hover:(bg-blue-darker text-white border-blue-darker)'],
|
|
33
|
-
|
|
34
|
-
['btn-copy', 'leading-none opacity-10 hover:opacity-80 ml-auto w-6 h-6 -right-7 sm:(h-4 w-4 -right-5) absolute'],
|
|
35
|
-
['btn-copy-text', 'shadow-sm py-0.5 px-1 bg-gray-100 -ml-1 -mt-4 text-xxs whitespace-nowrap'],
|
|
36
|
-
|
|
37
|
-
['btn-prcode', 'relative inline-block text-center leading-none px-1 py-0.5 mr-1 cursor-pointer font-mono border-solid border-1 border-gray-200 select-none text-gray-500 last:mr-0 not-last:mr-2 not-last:after:content-[+] after:(text-blue-700 absolute w-4 pl-0.5)']
|
|
38
|
-
|
|
1
|
+
// shortcuts/buttons.ts
|
|
2
|
+
export const buttonShortcuts = [
|
|
3
|
+
|
|
4
|
+
['btn', 'px-4 py-1 rounded inline-block bg-teal-600 text-white cursor-pointer hover:bg-teal-700 disabled:cursor-default disabled:bg-gray-600 disabled:opacity-50'],
|
|
5
|
+
['icon-btn', 'text-[0.9em] inline-block cursor-pointer select-none opacity-75 transition duration-200 ease-in-out hover:(opacity-100 text-teal-600)'],
|
|
6
|
+
|
|
7
|
+
// Primary buttons
|
|
8
|
+
['btn-primary', 'bg-accent-lightest border border-transparent hover:bg-accent-light inline-flex items-center justify-center shadow text-base text-blue-darker'],
|
|
9
|
+
['btn-primary-outline', 'border-accent-light border font-medium inline-flex items-center justify-center shadow text-base text-accent-default transition-all hover:(bg-accent-light text-white)'],
|
|
10
|
+
|
|
11
|
+
// Secondary buttons
|
|
12
|
+
['btn-secondary', 'bg-neutral-dark border border-transparent hover:bg-neutral-darker inline-flex items-center justify-center shadow text-base text-white'],
|
|
13
|
+
['btn-secondary-outline', 'border-neutral-dark border text-neutral-dark font-medium inline-flex items-center justify-center shadow text-base hover:(text-white bg-neutral-dark)'],
|
|
14
|
+
|
|
15
|
+
// Tertiary buttons
|
|
16
|
+
['btn-tertiary', 'inline-flex border border-transparent items-center font-medium text-center text-white bg-blue-darker hover:bg-accent-darker focus:ring-4 focus:outline-none focus:ring-blue-light'],
|
|
17
|
+
['btn-tertiary-outline', 'inline-flex border items-center font-medium text-center text-blue-darker border-blue-darker transition-colors focus:(ring-2 outline-none ring-blue-light)'],
|
|
18
|
+
|
|
19
|
+
// Utility buttons
|
|
20
|
+
['btn-text', 'text-neutral-dark border border-transparent hover:underline transition-all'],
|
|
21
|
+
['btn-tag', 'bg-blue-ultralight text-blue-darker font-medium mr-2 dark:bg-neutral-darker dark:text-blue-light border border-blue-default hover:border-blue-medium justify-center'],
|
|
22
|
+
|
|
23
|
+
// Size variants
|
|
24
|
+
['btn-normal', 'md:px-10 md:py-2 md:text-lg px-8 py-3 whitespace-nowrap'],
|
|
25
|
+
['btn-sm', 'px-6 py-2 text-sm whitespace-nowrap'],
|
|
26
|
+
['btn-xs', 'px-4 py-1 text-sm whitespace-nowrap'],
|
|
27
|
+
|
|
28
|
+
// Hover variants
|
|
29
|
+
['btn-white-hover', 'hover:(text-blue-darker bg-white border-blue-darker)'],
|
|
30
|
+
['btn-light-hover', 'hover:(text-blue-darker bg-accent-lightest border-accent-lightest)'],
|
|
31
|
+
['btn-medium-hover', 'hover:(text-white bg-brand-primary border-brand-primary)'],
|
|
32
|
+
['btn-dark-hover', 'hover:(bg-blue-darker text-white border-blue-darker)'],
|
|
33
|
+
|
|
34
|
+
['btn-copy', 'leading-none opacity-10 hover:opacity-80 ml-auto w-6 h-6 -right-7 sm:(h-4 w-4 -right-5) absolute'],
|
|
35
|
+
['btn-copy-text', 'shadow-sm py-0.5 px-1 bg-gray-100 -ml-1 -mt-4 text-xxs whitespace-nowrap'],
|
|
36
|
+
|
|
37
|
+
['btn-prcode', 'relative inline-block text-center leading-none px-1 py-0.5 mr-1 cursor-pointer font-mono border-solid border-1 border-gray-200 select-none text-gray-500 last:mr-0 not-last:mr-2 not-last:after:content-[+] after:(text-blue-700 absolute w-4 pl-0.5)']
|
|
38
|
+
|
|
39
39
|
];
|