layout-style-css 2.0.0 → 2.1.0

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/package.json CHANGED
@@ -1,35 +1,35 @@
1
- {
2
- "name": "layout-style-css",
3
- "version": "2.0.0",
4
- "description": "Dependency-free structural CSS for responsive wrappers, composition primitives, recipes, utilities, and layout personalities.",
5
- "type": "module",
6
- "license": "MIT",
7
- "homepage": "https://github.com/Foscat/layout-style-css#readme",
8
- "repository": {
9
- "type": "git",
10
- "url": "git+https://github.com/Foscat/layout-style-css.git"
11
- },
12
- "bugs": {
13
- "url": "https://github.com/Foscat/layout-style-css/issues"
14
- },
15
- "engines": {
16
- "node": ">=20"
17
- },
18
- "keywords": [
19
- "css",
20
- "layout",
21
- "design-system",
22
- "ui-style-kit-css",
23
- "responsive-layout",
24
- "shell-layouts"
25
- ],
26
- "main": "dist/layout-style-css.css",
27
- "style": "dist/layout-style-css.min.css",
28
- "unpkg": "dist/layout-style-css.min.css",
29
- "jsdelivr": "dist/layout-style-css.min.css",
30
- "scripts": {
31
- "build": "node scripts/build.mjs",
32
- "pages:build": "node scripts/build-pages.mjs",
1
+ {
2
+ "name": "layout-style-css",
3
+ "version": "2.1.0",
4
+ "description": "Dependency-free structural CSS for responsive wrappers, composition primitives, recipes, utilities, and layout personalities.",
5
+ "type": "module",
6
+ "license": "MIT",
7
+ "homepage": "https://github.com/Foscat/layout-style-css#readme",
8
+ "repository": {
9
+ "type": "git",
10
+ "url": "git+https://github.com/Foscat/layout-style-css.git"
11
+ },
12
+ "bugs": {
13
+ "url": "https://github.com/Foscat/layout-style-css/issues"
14
+ },
15
+ "engines": {
16
+ "node": ">=20"
17
+ },
18
+ "keywords": [
19
+ "css",
20
+ "layout",
21
+ "design-system",
22
+ "ui-style-kit-css",
23
+ "responsive-layout",
24
+ "shell-layouts"
25
+ ],
26
+ "main": "dist/layout-style-css.css",
27
+ "style": "dist/layout-style-css.min.css",
28
+ "unpkg": "dist/layout-style-css.min.css",
29
+ "jsdelivr": "dist/layout-style-css.min.css",
30
+ "scripts": {
31
+ "build": "node scripts/build.mjs",
32
+ "pages:build": "node scripts/build-pages.mjs",
33
33
  "lint": "stylelint \"styles/**/*.css\" \"demo/**/*.css\"",
34
34
  "check:demo-js": "node --check demo/demo.js",
35
35
  "test:static": "node test/layout-css-contract.test.mjs && node test/release-docs-contract.test.mjs",
@@ -43,56 +43,56 @@
43
43
  "test:full": "npm run test:static && npm run test:demo:all && npm run test:pages",
44
44
  "check": "npm run build && npm run lint && npm run check:demo-js && npm test && npm run pack:dry-run",
45
45
  "check:full": "npm run build && npm run lint && npm run check:demo-js && npm run test:full && npm run pack:dry-run",
46
- "pack:dry-run": "npm pack --dry-run --ignore-scripts",
46
+ "pack:dry-run": "npm pack --dry-run --ignore-scripts",
47
47
  "publish:dry-run": "npm publish --dry-run --access public --ignore-scripts",
48
48
  "release:verify": "npm run check:full && npm audit --audit-level=moderate && npm run publish:dry-run",
49
49
  "prepack": "npm run build && npm run test:static",
50
- "prepublishOnly": "npm run check:full"
51
- },
52
- "publishConfig": {
53
- "access": "public"
54
- },
55
- "devDependencies": {
56
- "@playwright/test": "1.61.1",
57
- "interactive-surface-css": "1.4.0",
58
- "stylelint": "17.14.0",
59
- "ui-style-kit-css": "2.0.1"
60
- },
61
- "exports": {
62
- ".": "./dist/layout-style-css.css",
63
- "./css": "./dist/layout-style-css.css",
64
- "./css.css": "./dist/layout-style-css.css",
65
- "./min": "./dist/layout-style-css.min.css",
66
- "./min.css": "./dist/layout-style-css.min.css",
67
- "./core.css": "./dist/core.css",
68
- "./wrappers.css": "./dist/wrappers.css",
69
- "./primitives.css": "./dist/primitives.css",
70
- "./recipes.css": "./dist/recipes.css",
71
- "./utilities.css": "./dist/utilities.css",
72
- "./personalities.css": "./dist/personalities.css",
73
- "./personalities/*.css": "./dist/personalities/*.css",
74
- "./integrations/ui-style-kit.css": "./dist/integrations/ui-style-kit.css",
75
- "./legacy.css": "./dist/legacy.css",
76
- "./package.json": "./package.json"
77
- },
78
- "files": [
79
- "dist",
80
- "styles",
50
+ "prepublishOnly": "npm run release:verify"
51
+ },
52
+ "publishConfig": {
53
+ "access": "public"
54
+ },
55
+ "devDependencies": {
56
+ "@playwright/test": "1.61.1",
57
+ "interactive-surface-css": "1.5.0",
58
+ "stylelint": "17.14.0",
59
+ "ui-style-kit-css": "2.1.0"
60
+ },
61
+ "exports": {
62
+ ".": "./dist/layout-style-css.css",
63
+ "./css": "./dist/layout-style-css.css",
64
+ "./css.css": "./dist/layout-style-css.css",
65
+ "./min": "./dist/layout-style-css.min.css",
66
+ "./min.css": "./dist/layout-style-css.min.css",
67
+ "./core.css": "./dist/core.css",
68
+ "./wrappers.css": "./dist/wrappers.css",
69
+ "./primitives.css": "./dist/primitives.css",
70
+ "./recipes.css": "./dist/recipes.css",
71
+ "./utilities.css": "./dist/utilities.css",
72
+ "./personalities.css": "./dist/personalities.css",
73
+ "./personalities/*.css": "./dist/personalities/*.css",
74
+ "./integrations/ui-style-kit.css": "./dist/integrations/ui-style-kit.css",
75
+ "./legacy.css": "./dist/legacy.css",
76
+ "./package.json": "./package.json"
77
+ },
78
+ "files": [
79
+ "dist",
80
+ "styles",
81
81
  "docs/wiki",
82
82
  "demo/index.html",
83
83
  "demo/demo.css",
84
84
  "demo/demo.js",
85
- "demo/assets/apple-touch-icon.svg",
86
- "demo/assets/favicon.svg",
87
- "demo/assets/social-card.png",
88
- "demo/browserconfig.xml",
89
- "demo/robots.txt",
90
- "demo/site.webmanifest",
91
- "demo/sitemap.xml",
92
- "README.md",
93
- "CHANGELOG.md",
94
- "CONTRIBUTING.md",
95
- "SECURITY.md",
96
- "LICENSE"
97
- ]
98
- }
85
+ "demo/assets/apple-touch-icon.svg",
86
+ "demo/assets/favicon.svg",
87
+ "demo/assets/social-card.png",
88
+ "demo/browserconfig.xml",
89
+ "demo/robots.txt",
90
+ "demo/site.webmanifest",
91
+ "demo/sitemap.xml",
92
+ "README.md",
93
+ "CHANGELOG.md",
94
+ "CONTRIBUTING.md",
95
+ "SECURITY.md",
96
+ "LICENSE"
97
+ ]
98
+ }
@@ -1,70 +1,70 @@
1
1
  @layer ly.reset, ly.tokens, ly.wrappers, ly.primitives, ly.recipes, ly.utilities, ly.personalities, ly.integrations, ly.legacy;
2
2
 
3
3
  /*
4
- Compatibility bridge for ui-style-kit-css.
5
- This bridge intentionally does not map color, type, border, or shadow tokens.
4
+ Compatibility bridge for ui-style-kit-css.
5
+ This bridge intentionally does not map color, type, border, or shadow tokens.
6
6
  ui-style-kit-css owns those visuals; layout-style-css owns structure.
7
- */
8
-
7
+ */
8
+
9
9
  @layer ly.integrations.ui_style_kit {
10
- :where(.ly-root[data-ui][data-theme][data-mode], [data-ui][data-theme][data-mode] .ly-root) {
11
- --ly-ui-style-kit-bridge: 1;
12
-
13
- /*
14
- Normalize UI kit root background geometry without redefining its paint.
15
- Patterned theme layers should fill the viewport once instead of tiling.
16
- */
17
- min-block-size: 100svh;
18
- background-attachment: fixed;
19
- background-position: center;
20
- background-repeat: no-repeat;
21
- background-size: 100% 100%;
22
- }
23
-
24
- :where(.ly-root[data-ui="minimal-saas"], [data-ui="minimal-saas"] .ly-root) {
25
- --ly-ui-style-kit-bridge-style: minimal-saas;
26
- }
27
-
28
- :where(.ly-root[data-ui="bento"], [data-ui="bento"] .ly-root) {
29
- --ly-ui-style-kit-bridge-style: bento;
30
- }
31
-
32
- :where(.ly-root[data-ui="maximalist"], [data-ui="maximalist"] .ly-root) {
33
- --ly-ui-style-kit-bridge-style: maximalist;
34
- }
35
-
36
- :where(.ly-root[data-ui="bauhaus"], [data-ui="bauhaus"] .ly-root) {
37
- --ly-ui-style-kit-bridge-style: bauhaus;
38
- }
39
-
40
- :where(.ly-root[data-ui="tactile"], [data-ui="tactile"] .ly-root) {
41
- --ly-ui-style-kit-bridge-style: tactile;
42
- }
43
-
44
- :where(.ly-root[data-ui="neumorphism"], [data-ui="neumorphism"] .ly-root) {
45
- --ly-ui-style-kit-bridge-style: neumorphism;
46
- }
47
-
48
- :where(.ly-root[data-ui="retrofuturism"], [data-ui="retrofuturism"] .ly-root) {
49
- --ly-ui-style-kit-bridge-style: retrofuturism;
50
- }
51
-
52
- :where(.ly-root[data-ui="brutalism"], [data-ui="brutalism"] .ly-root) {
53
- --ly-ui-style-kit-bridge-style: brutalism;
54
- }
55
-
56
- :where(.ly-root[data-ui="cyberpunk"], [data-ui="cyberpunk"] .ly-root) {
57
- --ly-ui-style-kit-bridge-style: cyberpunk;
58
- }
59
-
60
- :where(.ly-root[data-ui="y2k"], [data-ui="y2k"] .ly-root) {
61
- --ly-ui-style-kit-bridge-style: y2k;
62
- }
63
-
64
- :where(.ly-root[data-ui="retro-glass"], [data-ui="retro-glass"] .ly-root) {
65
- --ly-ui-style-kit-bridge-style: retro-glass;
66
- }
67
-
10
+ :where(.ly-root[data-ui][data-theme][data-mode], [data-ui][data-theme][data-mode] .ly-root) {
11
+ --ly-ui-style-kit-bridge: 1;
12
+
13
+ /*
14
+ Normalize UI kit root background geometry without redefining its paint.
15
+ Patterned theme layers should fill the viewport once instead of tiling.
16
+ */
17
+ min-block-size: 100svh;
18
+ background-attachment: fixed;
19
+ background-position: center;
20
+ background-repeat: no-repeat;
21
+ background-size: 100% 100%;
22
+ }
23
+
24
+ :where(.ly-root[data-ui="minimal-saas"], [data-ui="minimal-saas"] .ly-root) {
25
+ --ly-ui-style-kit-bridge-style: minimal-saas;
26
+ }
27
+
28
+ :where(.ly-root[data-ui="bento"], [data-ui="bento"] .ly-root) {
29
+ --ly-ui-style-kit-bridge-style: bento;
30
+ }
31
+
32
+ :where(.ly-root[data-ui="maximalist"], [data-ui="maximalist"] .ly-root) {
33
+ --ly-ui-style-kit-bridge-style: maximalist;
34
+ }
35
+
36
+ :where(.ly-root[data-ui="bauhaus"], [data-ui="bauhaus"] .ly-root) {
37
+ --ly-ui-style-kit-bridge-style: bauhaus;
38
+ }
39
+
40
+ :where(.ly-root[data-ui="tactile"], [data-ui="tactile"] .ly-root) {
41
+ --ly-ui-style-kit-bridge-style: tactile;
42
+ }
43
+
44
+ :where(.ly-root[data-ui="neumorphism"], [data-ui="neumorphism"] .ly-root) {
45
+ --ly-ui-style-kit-bridge-style: neumorphism;
46
+ }
47
+
48
+ :where(.ly-root[data-ui="retrofuturism"], [data-ui="retrofuturism"] .ly-root) {
49
+ --ly-ui-style-kit-bridge-style: retrofuturism;
50
+ }
51
+
52
+ :where(.ly-root[data-ui="brutalism"], [data-ui="brutalism"] .ly-root) {
53
+ --ly-ui-style-kit-bridge-style: brutalism;
54
+ }
55
+
56
+ :where(.ly-root[data-ui="cyberpunk"], [data-ui="cyberpunk"] .ly-root) {
57
+ --ly-ui-style-kit-bridge-style: cyberpunk;
58
+ }
59
+
60
+ :where(.ly-root[data-ui="y2k"], [data-ui="y2k"] .ly-root) {
61
+ --ly-ui-style-kit-bridge-style: y2k;
62
+ }
63
+
64
+ :where(.ly-root[data-ui="retro-glass"], [data-ui="retro-glass"] .ly-root) {
65
+ --ly-ui-style-kit-bridge-style: retro-glass;
66
+ }
67
+
68
68
  :where(.saas-container, .bento-container, .max-container, .bau-container, .tactile-container, .neo-container, .retro-container, .brutal-container, .cyber-container, .y2k-container, .rg-container) {
69
69
  /* UI Style Kit naming can opt into layout sizing without taking over visual paint. */
70
70
  container-name: ly-wrapper;
@@ -72,104 +72,104 @@
72
72
  inline-size: min(100%, calc(var(--ly-wrapper-max) + (var(--ly-wrapper-gutter) * 2)));
73
73
  margin-inline: auto;
74
74
  padding-inline: var(--ly-wrapper-gutter);
75
- }
76
-
77
- :where(.saas-section, .bento-section, .max-section, .bau-section, .tactile-section, .neo-section, .retro-section, .brutal-section, .cyber-section, .y2k-section, .rg-section) {
78
- padding-block: var(--ly-section-padding-block);
79
- }
80
-
81
- :where(.saas-stack, .bento-stack, .max-stack, .bau-stack, .tactile-stack, .neo-stack, .retro-stack, .brutal-stack, .cyber-stack, .y2k-stack, .rg-stack) {
82
- display: flex;
83
- flex-direction: column;
84
- gap: var(--ly-stack-gap);
85
- }
86
-
87
- :where(.saas-cluster, .bento-cluster, .max-cluster, .bau-cluster, .tactile-cluster, .neo-cluster, .retro-cluster, .brutal-cluster, .cyber-cluster, .y2k-cluster, .rg-cluster) {
88
- display: flex;
89
- flex-wrap: wrap;
90
- align-items: center;
91
- gap: var(--ly-cluster-gap);
92
- }
93
-
94
- :where(.saas-grid, .bento-grid, .max-grid, .bau-grid, .tactile-grid, .neo-grid, .retro-grid, .brutal-grid, .cyber-grid, .y2k-grid, .rg-grid) {
95
- display: grid;
96
- grid-template-columns: repeat(auto-fit, minmax(min(100%, var(--ly-grid-min)), 1fr));
97
- gap: var(--ly-grid-gap);
98
- }
99
-
100
- :where(.saas-split, .bento-split, .max-split, .bau-split, .tactile-split, .neo-split, .retro-split, .brutal-split, .cyber-split, .y2k-split, .rg-split) {
101
- display: grid;
102
- grid-template-columns: 1fr;
103
- gap: var(--ly-gap);
104
- align-items: var(--ly-split-align, center);
105
- }
106
-
107
- :where(.saas-split, .bento-split, .max-split, .bau-split, .tactile-split, .neo-split, .retro-split, .brutal-split, .cyber-split, .y2k-split, .rg-split) > * {
108
- min-width: 0;
109
- }
110
-
111
- :where(.saas-button-group, .bento-button-group, .max-button-group, .bau-button-group, .tactile-button-group, .neo-button-group, .retro-button-group, .brutal-button-group, .cyber-button-group, .y2k-button-group, .rg-button-group) {
112
- display: flex;
113
- flex-wrap: wrap;
114
- align-items: center;
115
- gap: var(--ly-cluster-gap);
116
- }
117
-
118
- :where(.saas-button-group, .bento-button-group, .max-button-group, .bau-button-group, .tactile-button-group, .neo-button-group, .retro-button-group, .brutal-button-group, .cyber-button-group, .y2k-button-group, .rg-button-group) > * {
119
- flex: 0 1 auto;
120
- min-width: min(100%, var(--ly-button-min, 8rem));
121
- }
122
-
123
- :where(.saas-card-grid, .bento-card-grid, .max-card-grid, .bau-card-grid, .tactile-card-grid, .neo-card-grid, .retro-card-grid, .brutal-card-grid, .cyber-card-grid, .y2k-card-grid, .rg-card-grid) {
124
- display: grid;
125
- grid-template-columns: repeat(auto-fit, minmax(min(100%, var(--ly-card-grid-min)), 1fr));
126
- gap: var(--ly-grid-gap);
127
- }
128
-
129
- :where(.saas-card-grid, .bento-card-grid, .max-card-grid, .bau-card-grid, .tactile-card-grid, .neo-card-grid, .retro-card-grid, .brutal-card-grid, .cyber-card-grid, .y2k-card-grid, .rg-card-grid) > * {
130
- min-width: 0;
131
- }
132
-
133
- :where(.saas-card-sm, .bento-card-sm, .max-card-sm, .bau-card-sm, .tactile-card-sm, .neo-card-sm, .retro-card-sm, .brutal-card-sm, .cyber-card-sm, .y2k-card-sm, .rg-card-sm) {
134
- min-block-size: var(--ly-card-size-sm);
135
- }
136
-
137
- :where(.saas-card-md, .bento-card-md, .max-card-md, .bau-card-md, .tactile-card-md, .neo-card-md, .retro-card-md, .brutal-card-md, .cyber-card-md, .y2k-card-md, .rg-card-md) {
138
- min-block-size: var(--ly-card-size-md);
139
- }
140
-
141
- :where(.saas-card-lg, .bento-card-lg, .max-card-lg, .bau-card-lg, .tactile-card-lg, .neo-card-lg, .retro-card-lg, .brutal-card-lg, .cyber-card-lg, .y2k-card-lg, .rg-card-lg) {
142
- min-block-size: var(--ly-card-size-lg);
143
- }
144
-
145
- :where(.saas-gallery, .bento-gallery, .max-gallery, .bau-gallery, .tactile-gallery, .neo-gallery, .retro-gallery, .brutal-gallery, .cyber-gallery, .y2k-gallery, .rg-gallery) {
146
- display: grid;
147
- grid-template-columns: repeat(auto-fit, minmax(min(100%, var(--ly-gallery-min)), 1fr));
148
- gap: var(--ly-grid-gap);
149
- }
150
-
151
- :where(.saas-gallery, .bento-gallery, .max-gallery, .bau-gallery, .tactile-gallery, .neo-gallery, .retro-gallery, .brutal-gallery, .cyber-gallery, .y2k-gallery, .rg-gallery) > * {
152
- min-width: 0;
153
- }
154
-
155
- :where(.saas-carousel, .bento-carousel, .max-carousel, .bau-carousel, .tactile-carousel, .neo-carousel, .retro-carousel, .brutal-carousel, .cyber-carousel, .y2k-carousel, .rg-carousel) {
156
- display: grid;
157
- grid-auto-flow: column;
158
- grid-auto-columns: minmax(min(100%, var(--ly-carousel-item-min)), var(--ly-carousel-item-max));
159
- gap: var(--ly-grid-gap);
160
- overflow-x: auto;
161
- overscroll-behavior-inline: contain;
162
- scroll-snap-type: x proximity;
163
- }
164
-
165
- :where(.saas-carousel, .bento-carousel, .max-carousel, .bau-carousel, .tactile-carousel, .neo-carousel, .retro-carousel, .brutal-carousel, .cyber-carousel, .y2k-carousel, .rg-carousel) > * {
166
- min-width: 0;
167
- scroll-snap-align: start;
168
- }
169
-
75
+ }
76
+
77
+ :where(.saas-section, .bento-section, .max-section, .bau-section, .tactile-section, .neo-section, .retro-section, .brutal-section, .cyber-section, .y2k-section, .rg-section) {
78
+ padding-block: var(--ly-section-padding-block);
79
+ }
80
+
81
+ :where(.saas-stack, .bento-stack, .max-stack, .bau-stack, .tactile-stack, .neo-stack, .retro-stack, .brutal-stack, .cyber-stack, .y2k-stack, .rg-stack) {
82
+ display: flex;
83
+ flex-direction: column;
84
+ gap: var(--ly-stack-gap);
85
+ }
86
+
87
+ :where(.saas-cluster, .bento-cluster, .max-cluster, .bau-cluster, .tactile-cluster, .neo-cluster, .retro-cluster, .brutal-cluster, .cyber-cluster, .y2k-cluster, .rg-cluster) {
88
+ display: flex;
89
+ flex-wrap: wrap;
90
+ align-items: center;
91
+ gap: var(--ly-cluster-gap);
92
+ }
93
+
94
+ :where(.saas-grid, .bento-grid, .max-grid, .bau-grid, .tactile-grid, .neo-grid, .retro-grid, .brutal-grid, .cyber-grid, .y2k-grid, .rg-grid) {
95
+ display: grid;
96
+ grid-template-columns: repeat(auto-fit, minmax(min(100%, var(--ly-grid-min)), 1fr));
97
+ gap: var(--ly-grid-gap);
98
+ }
99
+
100
+ :where(.saas-split, .bento-split, .max-split, .bau-split, .tactile-split, .neo-split, .retro-split, .brutal-split, .cyber-split, .y2k-split, .rg-split) {
101
+ display: grid;
102
+ grid-template-columns: 1fr;
103
+ gap: var(--ly-gap);
104
+ align-items: var(--ly-split-align, center);
105
+ }
106
+
107
+ :where(.saas-split, .bento-split, .max-split, .bau-split, .tactile-split, .neo-split, .retro-split, .brutal-split, .cyber-split, .y2k-split, .rg-split) > * {
108
+ min-width: 0;
109
+ }
110
+
111
+ :where(.saas-button-group, .bento-button-group, .max-button-group, .bau-button-group, .tactile-button-group, .neo-button-group, .retro-button-group, .brutal-button-group, .cyber-button-group, .y2k-button-group, .rg-button-group) {
112
+ display: flex;
113
+ flex-wrap: wrap;
114
+ align-items: center;
115
+ gap: var(--ly-cluster-gap);
116
+ }
117
+
118
+ :where(.saas-button-group, .bento-button-group, .max-button-group, .bau-button-group, .tactile-button-group, .neo-button-group, .retro-button-group, .brutal-button-group, .cyber-button-group, .y2k-button-group, .rg-button-group) > * {
119
+ flex: 0 1 auto;
120
+ min-width: min(100%, var(--ly-button-min, 8rem));
121
+ }
122
+
123
+ :where(.saas-card-grid, .bento-card-grid, .max-card-grid, .bau-card-grid, .tactile-card-grid, .neo-card-grid, .retro-card-grid, .brutal-card-grid, .cyber-card-grid, .y2k-card-grid, .rg-card-grid) {
124
+ display: grid;
125
+ grid-template-columns: repeat(auto-fit, minmax(min(100%, var(--ly-card-grid-min)), 1fr));
126
+ gap: var(--ly-grid-gap);
127
+ }
128
+
129
+ :where(.saas-card-grid, .bento-card-grid, .max-card-grid, .bau-card-grid, .tactile-card-grid, .neo-card-grid, .retro-card-grid, .brutal-card-grid, .cyber-card-grid, .y2k-card-grid, .rg-card-grid) > * {
130
+ min-width: 0;
131
+ }
132
+
133
+ :where(.saas-card-sm, .bento-card-sm, .max-card-sm, .bau-card-sm, .tactile-card-sm, .neo-card-sm, .retro-card-sm, .brutal-card-sm, .cyber-card-sm, .y2k-card-sm, .rg-card-sm) {
134
+ min-block-size: var(--ly-card-size-sm);
135
+ }
136
+
137
+ :where(.saas-card-md, .bento-card-md, .max-card-md, .bau-card-md, .tactile-card-md, .neo-card-md, .retro-card-md, .brutal-card-md, .cyber-card-md, .y2k-card-md, .rg-card-md) {
138
+ min-block-size: var(--ly-card-size-md);
139
+ }
140
+
141
+ :where(.saas-card-lg, .bento-card-lg, .max-card-lg, .bau-card-lg, .tactile-card-lg, .neo-card-lg, .retro-card-lg, .brutal-card-lg, .cyber-card-lg, .y2k-card-lg, .rg-card-lg) {
142
+ min-block-size: var(--ly-card-size-lg);
143
+ }
144
+
145
+ :where(.saas-gallery, .bento-gallery, .max-gallery, .bau-gallery, .tactile-gallery, .neo-gallery, .retro-gallery, .brutal-gallery, .cyber-gallery, .y2k-gallery, .rg-gallery) {
146
+ display: grid;
147
+ grid-template-columns: repeat(auto-fit, minmax(min(100%, var(--ly-gallery-min)), 1fr));
148
+ gap: var(--ly-grid-gap);
149
+ }
150
+
151
+ :where(.saas-gallery, .bento-gallery, .max-gallery, .bau-gallery, .tactile-gallery, .neo-gallery, .retro-gallery, .brutal-gallery, .cyber-gallery, .y2k-gallery, .rg-gallery) > * {
152
+ min-width: 0;
153
+ }
154
+
155
+ :where(.saas-carousel, .bento-carousel, .max-carousel, .bau-carousel, .tactile-carousel, .neo-carousel, .retro-carousel, .brutal-carousel, .cyber-carousel, .y2k-carousel, .rg-carousel) {
156
+ display: grid;
157
+ grid-auto-flow: column;
158
+ grid-auto-columns: minmax(min(100%, var(--ly-carousel-item-min)), var(--ly-carousel-item-max));
159
+ gap: var(--ly-grid-gap);
160
+ overflow-x: auto;
161
+ overscroll-behavior-inline: contain;
162
+ scroll-snap-type: x proximity;
163
+ }
164
+
165
+ :where(.saas-carousel, .bento-carousel, .max-carousel, .bau-carousel, .tactile-carousel, .neo-carousel, .retro-carousel, .brutal-carousel, .cyber-carousel, .y2k-carousel, .rg-carousel) > * {
166
+ min-width: 0;
167
+ scroll-snap-align: start;
168
+ }
169
+
170
170
  @container (min-width: 48rem) {
171
- :where(.saas-split, .bento-split, .max-split, .bau-split, .tactile-split, .neo-split, .retro-split, .brutal-split, .cyber-split, .y2k-split, .rg-split) {
172
- grid-template-columns: minmax(0, var(--ly-split-primary, 1fr)) minmax(0, var(--ly-split-secondary, 1fr));
173
- }
174
- }
175
- }
171
+ :where(.saas-split, .bento-split, .max-split, .bau-split, .tactile-split, .neo-split, .retro-split, .brutal-split, .cyber-split, .y2k-split, .rg-split) {
172
+ grid-template-columns: minmax(0, var(--ly-split-primary, 1fr)) minmax(0, var(--ly-split-secondary, 1fr));
173
+ }
174
+ }
175
+ }