@ulu/frontend 0.1.0-beta.27 → 0.1.0-beta.29

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.
Files changed (164) hide show
  1. package/CHANGELOG.md +20 -0
  2. package/dist/ulu-frontend.min.css +1 -1
  3. package/docs-dev/assets/main.js +832 -421
  4. package/docs-dev/assets/placeholder/icon-calendar.svg +1 -0
  5. package/docs-dev/assets/placeholder/icon-check.svg +1 -0
  6. package/docs-dev/assets/style.css +629 -233
  7. package/docs-dev/changelog/index.html +98 -8
  8. package/docs-dev/demos/accordion/index.html +38 -8
  9. package/docs-dev/demos/button/index.html +38 -8
  10. package/docs-dev/demos/button-verbose/index.html +5109 -0
  11. package/docs-dev/demos/callout/index.html +38 -8
  12. package/docs-dev/demos/captioned-figure/index.html +38 -8
  13. package/docs-dev/demos/card/index.html +105 -477
  14. package/docs-dev/demos/card-grid/index.html +88 -12
  15. package/docs-dev/demos/card-new/index.html +5088 -0
  16. package/docs-dev/demos/card-old/index.html +5223 -0
  17. package/docs-dev/demos/card.1/index.html +5223 -0
  18. package/docs-dev/demos/card.TRASH/index.html +5541 -0
  19. package/docs-dev/demos/css-icons/index.html +38 -8
  20. package/docs-dev/demos/data-grid/index.html +38 -8
  21. package/docs-dev/demos/data-table/index.html +63 -33
  22. package/docs-dev/demos/details-group/index.html +38 -8
  23. package/docs-dev/demos/file-save/index.html +38 -8
  24. package/docs-dev/demos/flipcard/index.html +38 -8
  25. package/docs-dev/demos/form-theme/index.html +38 -8
  26. package/docs-dev/demos/index.html +38 -8
  27. package/docs-dev/demos/list-inline/index.html +38 -8
  28. package/docs-dev/demos/list-lines/index.html +38 -8
  29. package/docs-dev/demos/menu-stack/index.html +38 -8
  30. package/docs-dev/demos/modals/index.html +38 -8
  31. package/docs-dev/demos/nav-strip/index.html +38 -8
  32. package/docs-dev/demos/overlay-section/index.html +38 -8
  33. package/docs-dev/demos/popovers/index.html +41 -9
  34. package/docs-dev/demos/print/index.html +38 -8
  35. package/docs-dev/demos/pull-quote/index.html +38 -8
  36. package/docs-dev/demos/rule/index.html +38 -8
  37. package/docs-dev/demos/scrollpoints/index.html +38 -8
  38. package/docs-dev/demos/spoke-spinner/index.html +38 -8
  39. package/docs-dev/demos/sticky-list/index.html +38 -8
  40. package/docs-dev/demos/tabs/index.html +38 -8
  41. package/docs-dev/demos/tag/index.html +38 -8
  42. package/docs-dev/demos/theme-toggle/index.html +38 -8
  43. package/docs-dev/demos/tiles/index.html +38 -8
  44. package/docs-dev/demos/tooltip/index.html +38 -8
  45. package/docs-dev/guide/building-stylesheet/index.html +38 -8
  46. package/docs-dev/guide/developing-ulu-scss-module/index.html +38 -8
  47. package/docs-dev/guide/index.html +38 -8
  48. package/docs-dev/index.html +38 -8
  49. package/docs-dev/javascript/events/index.html +38 -8
  50. package/docs-dev/javascript/index.html +38 -8
  51. package/docs-dev/javascript/settings/index.html +38 -8
  52. package/docs-dev/javascript/ui-breakpoints/index.html +38 -8
  53. package/docs-dev/javascript/ui-collapsible/index.html +38 -8
  54. package/docs-dev/javascript/ui-details-group/index.html +38 -8
  55. package/docs-dev/javascript/ui-dialog/index.html +38 -8
  56. package/docs-dev/javascript/ui-flipcard/index.html +38 -8
  57. package/docs-dev/javascript/ui-grid/index.html +38 -8
  58. package/docs-dev/javascript/ui-modal-builder/index.html +38 -8
  59. package/docs-dev/javascript/ui-overflow-scroller/index.html +38 -8
  60. package/docs-dev/javascript/ui-overflow-scroller-pager/index.html +38 -8
  61. package/docs-dev/javascript/ui-page/index.html +38 -8
  62. package/docs-dev/javascript/ui-popover/index.html +38 -8
  63. package/docs-dev/javascript/ui-print/index.html +38 -8
  64. package/docs-dev/javascript/ui-print-details/index.html +38 -8
  65. package/docs-dev/javascript/ui-programmatic-modal/index.html +38 -8
  66. package/docs-dev/javascript/ui-proxy-click/index.html +38 -8
  67. package/docs-dev/javascript/ui-resizer/index.html +38 -8
  68. package/docs-dev/javascript/ui-scroll-slider/index.html +38 -8
  69. package/docs-dev/javascript/ui-scrollpoint/index.html +38 -8
  70. package/docs-dev/javascript/ui-slider/index.html +38 -8
  71. package/docs-dev/javascript/ui-tabs/index.html +38 -8
  72. package/docs-dev/javascript/ui-theme-toggle/index.html +38 -8
  73. package/docs-dev/javascript/ui-tooltip/index.html +38 -8
  74. package/docs-dev/javascript/utils-class-logger/index.html +38 -8
  75. package/docs-dev/javascript/utils-dom/index.html +38 -8
  76. package/docs-dev/javascript/utils-file-save/index.html +38 -8
  77. package/docs-dev/javascript/utils-floating-ui/index.html +38 -8
  78. package/docs-dev/javascript/utils-id/index.html +38 -8
  79. package/docs-dev/javascript/utils-pause-youtube-video/index.html +38 -8
  80. package/docs-dev/sass/base/color/index.html +38 -8
  81. package/docs-dev/sass/base/elements/index.html +38 -8
  82. package/docs-dev/sass/base/index/index.html +38 -8
  83. package/docs-dev/sass/base/index.html +38 -8
  84. package/docs-dev/sass/base/keyframes/index.html +38 -8
  85. package/docs-dev/sass/base/layout/index.html +38 -8
  86. package/docs-dev/sass/base/normalize/index.html +38 -8
  87. package/docs-dev/sass/base/print/index.html +38 -8
  88. package/docs-dev/sass/base/root/index.html +38 -8
  89. package/docs-dev/sass/base/typography/index.html +38 -8
  90. package/docs-dev/sass/components/accordion/index.html +38 -8
  91. package/docs-dev/sass/components/adaptive-spacing/index.html +38 -8
  92. package/docs-dev/sass/components/badge/index.html +38 -8
  93. package/docs-dev/sass/components/basic-hero/index.html +38 -8
  94. package/docs-dev/sass/components/button/index.html +38 -8
  95. package/docs-dev/sass/components/button-verbose/index.html +96 -17
  96. package/docs-dev/sass/components/callout/index.html +38 -8
  97. package/docs-dev/sass/components/captioned-figure/index.html +38 -8
  98. package/docs-dev/sass/components/card/index.html +44 -14
  99. package/docs-dev/sass/components/card-grid/index.html +38 -8
  100. package/docs-dev/sass/components/css-icon/index.html +38 -8
  101. package/docs-dev/sass/components/data-grid/index.html +38 -8
  102. package/docs-dev/sass/components/data-table/index.html +38 -8
  103. package/docs-dev/sass/components/fill-context/index.html +38 -8
  104. package/docs-dev/sass/components/flipcard/index.html +38 -8
  105. package/docs-dev/sass/components/flipcard-grid/index.html +38 -8
  106. package/docs-dev/sass/components/form-theme/index.html +124 -93
  107. package/docs-dev/sass/components/hero/index.html +38 -8
  108. package/docs-dev/sass/components/horizontal-rule/index.html +38 -8
  109. package/docs-dev/sass/components/image-grid/index.html +38 -8
  110. package/docs-dev/sass/components/index/index.html +38 -8
  111. package/docs-dev/sass/components/index.html +38 -8
  112. package/docs-dev/sass/components/links/index.html +38 -8
  113. package/docs-dev/sass/components/list-inline/index.html +38 -8
  114. package/docs-dev/sass/components/list-lines/index.html +38 -8
  115. package/docs-dev/sass/components/list-ordered/index.html +38 -8
  116. package/docs-dev/sass/components/list-unordered/index.html +38 -8
  117. package/docs-dev/sass/components/menu-stack/index.html +38 -8
  118. package/docs-dev/sass/components/modal/index.html +38 -8
  119. package/docs-dev/sass/components/nav-strip/index.html +38 -8
  120. package/docs-dev/sass/components/overlay-section/index.html +38 -8
  121. package/docs-dev/sass/components/pager/index.html +38 -8
  122. package/docs-dev/sass/components/placeholder-block/index.html +38 -8
  123. package/docs-dev/sass/components/popover/index.html +60 -31
  124. package/docs-dev/sass/components/pull-quote/index.html +38 -8
  125. package/docs-dev/sass/components/ratio-box/index.html +38 -8
  126. package/docs-dev/sass/components/rule/index.html +38 -8
  127. package/docs-dev/sass/components/scroll-slider/index.html +38 -8
  128. package/docs-dev/sass/components/skip-link/index.html +38 -8
  129. package/docs-dev/sass/components/slider/index.html +38 -8
  130. package/docs-dev/sass/components/spoke-spinner/index.html +38 -8
  131. package/docs-dev/sass/components/sticky-list/index.html +38 -8
  132. package/docs-dev/sass/components/tabs/index.html +38 -8
  133. package/docs-dev/sass/components/tag/index.html +38 -8
  134. package/docs-dev/sass/components/tile-button/index.html +38 -8
  135. package/docs-dev/sass/components/tile-grid/index.html +38 -8
  136. package/docs-dev/sass/components/tile-grid-overlay/index.html +38 -8
  137. package/docs-dev/sass/components/vignette/index.html +38 -8
  138. package/docs-dev/sass/components/wysiwyg/index.html +38 -8
  139. package/docs-dev/sass/core/breakpoint/index.html +38 -8
  140. package/docs-dev/sass/core/button/index.html +38 -8
  141. package/docs-dev/sass/core/color/index.html +38 -8
  142. package/docs-dev/sass/core/cssvar/index.html +38 -8
  143. package/docs-dev/sass/core/element/index.html +38 -8
  144. package/docs-dev/sass/core/index.html +38 -8
  145. package/docs-dev/sass/core/layout/index.html +38 -8
  146. package/docs-dev/sass/core/path/index.html +38 -8
  147. package/docs-dev/sass/core/selector/index.html +38 -8
  148. package/docs-dev/sass/core/typography/index.html +38 -8
  149. package/docs-dev/sass/core/units/index.html +38 -8
  150. package/docs-dev/sass/core/utils/index.html +248 -93
  151. package/docs-dev/sass/helpers/color/index.html +38 -8
  152. package/docs-dev/sass/helpers/display/index.html +38 -8
  153. package/docs-dev/sass/helpers/index/index.html +38 -8
  154. package/docs-dev/sass/helpers/index.html +38 -8
  155. package/docs-dev/sass/helpers/print/index.html +38 -8
  156. package/docs-dev/sass/helpers/typography/index.html +38 -8
  157. package/docs-dev/sass/helpers/units/index.html +38 -8
  158. package/docs-dev/sass/helpers/utilities/index.html +38 -8
  159. package/docs-dev/sass/index.html +38 -8
  160. package/package.json +8 -6
  161. package/scss/components/_button-verbose.scss +57 -9
  162. package/scss/components/_card.scss +34 -18
  163. package/scss/components/_form-theme.scss +52 -40
  164. package/scss/components/_popover.scss +16 -11
@@ -196,6 +196,21 @@
196
196
  </li>
197
197
 
198
198
 
199
+ <li class="nav-tree__item ">
200
+
201
+ <a class="nav-tree__link " href="/frontend/demos/button-verbose/">
202
+
203
+
204
+ <span class="nav-tree__text">
205
+ Button Verbose
206
+ </span>
207
+
208
+ </a>
209
+
210
+
211
+ </li>
212
+
213
+
199
214
  <li class="nav-tree__item ">
200
215
 
201
216
  <a class="nav-tree__link " href="/frontend/demos/callout/">
@@ -228,11 +243,11 @@
228
243
 
229
244
  <li class="nav-tree__item ">
230
245
 
231
- <a class="nav-tree__link " href="/frontend/demos/card/">
246
+ <a class="nav-tree__link " href="/frontend/demos/card-grid/">
232
247
 
233
248
 
234
249
  <span class="nav-tree__text">
235
- Card
250
+ Card Grid
236
251
  </span>
237
252
 
238
253
  </a>
@@ -243,11 +258,11 @@
243
258
 
244
259
  <li class="nav-tree__item ">
245
260
 
246
- <a class="nav-tree__link " href="/frontend/demos/card-grid/">
261
+ <a class="nav-tree__link " href="/frontend/demos/card/">
247
262
 
248
263
 
249
264
  <span class="nav-tree__text">
250
- Card Grid
265
+ Card New
251
266
  </span>
252
267
 
253
268
  </a>
@@ -2667,6 +2682,21 @@
2667
2682
  </li>
2668
2683
 
2669
2684
 
2685
+ <li class="nav-tree__item ">
2686
+
2687
+ <a class="nav-tree__link " href="/frontend/demos/button-verbose/">
2688
+
2689
+
2690
+ <span class="nav-tree__text">
2691
+ Button Verbose
2692
+ </span>
2693
+
2694
+ </a>
2695
+
2696
+
2697
+ </li>
2698
+
2699
+
2670
2700
  <li class="nav-tree__item ">
2671
2701
 
2672
2702
  <a class="nav-tree__link " href="/frontend/demos/callout/">
@@ -2699,11 +2729,11 @@
2699
2729
 
2700
2730
  <li class="nav-tree__item ">
2701
2731
 
2702
- <a class="nav-tree__link " href="/frontend/demos/card/">
2732
+ <a class="nav-tree__link " href="/frontend/demos/card-grid/">
2703
2733
 
2704
2734
 
2705
2735
  <span class="nav-tree__text">
2706
- Card
2736
+ Card Grid
2707
2737
  </span>
2708
2738
 
2709
2739
  </a>
@@ -2714,11 +2744,11 @@
2714
2744
 
2715
2745
  <li class="nav-tree__item ">
2716
2746
 
2717
- <a class="nav-tree__link " href="/frontend/demos/card-grid/">
2747
+ <a class="nav-tree__link " href="/frontend/demos/card/">
2718
2748
 
2719
2749
 
2720
2750
  <span class="nav-tree__text">
2721
- Card Grid
2751
+ Card New
2722
2752
  </span>
2723
2753
 
2724
2754
  </a>
@@ -196,6 +196,21 @@
196
196
  </li>
197
197
 
198
198
 
199
+ <li class="nav-tree__item ">
200
+
201
+ <a class="nav-tree__link " href="/frontend/demos/button-verbose/">
202
+
203
+
204
+ <span class="nav-tree__text">
205
+ Button Verbose
206
+ </span>
207
+
208
+ </a>
209
+
210
+
211
+ </li>
212
+
213
+
199
214
  <li class="nav-tree__item ">
200
215
 
201
216
  <a class="nav-tree__link " href="/frontend/demos/callout/">
@@ -228,11 +243,11 @@
228
243
 
229
244
  <li class="nav-tree__item ">
230
245
 
231
- <a class="nav-tree__link " href="/frontend/demos/card/">
246
+ <a class="nav-tree__link " href="/frontend/demos/card-grid/">
232
247
 
233
248
 
234
249
  <span class="nav-tree__text">
235
- Card
250
+ Card Grid
236
251
  </span>
237
252
 
238
253
  </a>
@@ -243,11 +258,11 @@
243
258
 
244
259
  <li class="nav-tree__item ">
245
260
 
246
- <a class="nav-tree__link " href="/frontend/demos/card-grid/">
261
+ <a class="nav-tree__link " href="/frontend/demos/card/">
247
262
 
248
263
 
249
264
  <span class="nav-tree__text">
250
- Card Grid
265
+ Card New
251
266
  </span>
252
267
 
253
268
  </a>
@@ -2667,6 +2682,21 @@
2667
2682
  </li>
2668
2683
 
2669
2684
 
2685
+ <li class="nav-tree__item ">
2686
+
2687
+ <a class="nav-tree__link " href="/frontend/demos/button-verbose/">
2688
+
2689
+
2690
+ <span class="nav-tree__text">
2691
+ Button Verbose
2692
+ </span>
2693
+
2694
+ </a>
2695
+
2696
+
2697
+ </li>
2698
+
2699
+
2670
2700
  <li class="nav-tree__item ">
2671
2701
 
2672
2702
  <a class="nav-tree__link " href="/frontend/demos/callout/">
@@ -2699,11 +2729,11 @@
2699
2729
 
2700
2730
  <li class="nav-tree__item ">
2701
2731
 
2702
- <a class="nav-tree__link " href="/frontend/demos/card/">
2732
+ <a class="nav-tree__link " href="/frontend/demos/card-grid/">
2703
2733
 
2704
2734
 
2705
2735
  <span class="nav-tree__text">
2706
- Card
2736
+ Card Grid
2707
2737
  </span>
2708
2738
 
2709
2739
  </a>
@@ -2714,11 +2744,11 @@
2714
2744
 
2715
2745
  <li class="nav-tree__item ">
2716
2746
 
2717
- <a class="nav-tree__link " href="/frontend/demos/card-grid/">
2747
+ <a class="nav-tree__link " href="/frontend/demos/card/">
2718
2748
 
2719
2749
 
2720
2750
  <span class="nav-tree__text">
2721
- Card Grid
2751
+ Card New
2722
2752
  </span>
2723
2753
 
2724
2754
  </a>
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@ulu/frontend",
3
- "version": "0.1.0-beta.27",
3
+ "version": "0.1.0-beta.29",
4
4
  "description": "Modular Sass Theming Library",
5
5
  "browser": "js/index.js",
6
6
  "main": "index.js",
@@ -31,7 +31,8 @@
31
31
  "docs:assets": "vite --config docs.vite.config.js --force",
32
32
  "docs:assets:build": "vite build --config docs.vite.config.js",
33
33
  "docs:assets:build:prod": "IS_PRODUCTION=true vite build --config docs.vite.config.js",
34
- "deploy" : "npm run build && npm run types && npm run docs:build:prod && npm run docs:assets:build:prod"
34
+ "deploy": "npm run build && npm run types && npm run docs:build:prod && npm run docs:assets:build:prod",
35
+ "deploy:docs": "npm run docs:build:prod && npm run docs:assets:build:prod"
35
36
  },
36
37
  "repository": {
37
38
  "type": "git",
@@ -67,6 +68,7 @@
67
68
  "@ulu/vitepress-auto-menus": "^0.0.3",
68
69
  "@ulu/vitepress-sassdoc": "^0.0.9",
69
70
  "algoliasearch": "^4.23.3",
71
+ "autoprefixer": "^10.4.16",
70
72
  "chokidar": "^3.6.0",
71
73
  "eleventy-plugin-nesting-toc": "^1.3.0",
72
74
  "fs-extra": "^11.2.0",
@@ -79,14 +81,14 @@
79
81
  "sass-embedded": "^1.81.0",
80
82
  "sharp": "^0.33.4",
81
83
  "svgo": "^3.3.2",
84
+ "twig": "^1.17.1",
82
85
  "typescript": "^5.3.3",
83
- "autoprefixer": "^10.4.16",
84
86
  "vite": "^5.4.11"
85
87
  },
86
88
  "dependencies": {
87
- "@ulu/utils": "^0.0.17",
89
+ "@floating-ui/dom": "^1.6.5",
90
+ "@ulu/utils": "^0.0.20",
88
91
  "ally.js": "^1.4.1",
89
- "aria-tablist": "^1.2.2",
90
- "@floating-ui/dom": "^1.6.5"
92
+ "aria-tablist": "^1.2.2"
91
93
  }
92
94
  }
@@ -9,6 +9,7 @@
9
9
  @use "../utils";
10
10
  @use "../color";
11
11
  @use "../element";
12
+ @use "../selector";
12
13
 
13
14
  // Used for function fallback
14
15
  $-fallbacks: (
@@ -36,6 +37,7 @@ $-fallbacks: (
36
37
  /// @prop {String} color [type] Text color for the button.
37
38
  /// @prop {String} color-hover [type] Text color for the button when hovered or focused.
38
39
  /// @prop {Color} icon-color [gray] Color for button icons.
40
+ /// @prop {Color} icon-color-hover [null] Optional color for icon when hovered
39
41
  /// @prop {Dimension} icon-font-size [1.25rem] Font size for the button.
40
42
  /// @prop {Number} line-height [1.2] Line height for button text.
41
43
  /// @prop {Dimension} margin [1em] Margin for the button.
@@ -46,16 +48,21 @@ $-fallbacks: (
46
48
  /// @prop {String} title-color [link] Color of the title of the button.
47
49
  /// @prop {String} title-color-hover [link-hover] Color of the title of the button when hovered or focused.
48
50
  /// @prop {Dimension} title-margin [0.5em] Margin for the button's title.
51
+ /// @prop {Boolean} left-cap [false] Enable left cap style
52
+ /// @prop {Color} left-cap-color ["link"] The color for the left cap
53
+ /// @prop {color} left-cap-color-hover ["link-hover"] The color for the left cap when the button is hovered
54
+ /// @prop {Number} left-cap-color-hover [0.5rem] Width of the cap
49
55
 
50
56
  $config: (
51
57
  "background-color" : white,
52
- "background-color-hover" : "link",
58
+ "background-color-hover" : #F7F8F7,
53
59
  "border-radius" : "border-radius",
54
60
  "box-shadow" : true,
55
61
  "box-shadow-hover" : true,
56
62
  "color" : "type",
57
63
  "color-hover" : "type",
58
64
  "icon-color": gray,
65
+ "icon-color-hover": null,
59
66
  "icon-font-size" : 1.25rem,
60
67
  "line-height" : 1.2,
61
68
  "margin" : 1em,
@@ -66,6 +73,10 @@ $config: (
66
73
  "title-color": "link",
67
74
  "title-margin" : 0.5em,
68
75
  "title-color-hover" : "link-hover",
76
+ "left-cap" : true,
77
+ "left-cap-color" : "link",
78
+ "left-cap-color-hover" : "link-hover",
79
+ "left-cap-width" : 0.5rem
69
80
  ) !default;
70
81
 
71
82
  /// Change modules $config
@@ -89,10 +100,18 @@ $config: (
89
100
 
90
101
  /// Prints component styles
91
102
  /// @example scss
92
- /// @include ulu.component-button-verbose-styles();
103
+ /// @include ulu.component-button-verbose-styles();
104
+ /// @example html {preview} - Basic Example
105
+ /// <a href="#" class="button-verbose">
106
+ /// <strong class="button-verbose__title">Example Link</strong>
107
+ /// This is the body
108
+ /// <span class="button-verbose__icon fas fa-arrow-right" aria-hidden="true"></span>
109
+ /// </a>
93
110
 
94
111
  @mixin styles {
95
- .button-verbose {
112
+ $prefix: selector.class("button-verbose");
113
+
114
+ #{ $prefix } {
96
115
  text-decoration: none;
97
116
  border-radius: element.get(get("border-radius"));
98
117
  box-shadow: get("box-shadow");
@@ -107,21 +126,47 @@ $config: (
107
126
  padding-right: (get("padding-x") * 2) + 1em;
108
127
  color: color.get(get("color"));
109
128
  text-align: left;
129
+ // Add border like cap
130
+ @if get("left-cap") {
131
+ padding-left: calc(get("padding-x") + get("left-cap-width"));
132
+ &::after {
133
+ content: "";
134
+ display: block;
135
+ position: absolute;
136
+ top: 0;
137
+ bottom: 0;
138
+ left: 0;
139
+ width: get("left-cap-width");
140
+ background-color: color.get(get("left-cap-color"));
141
+ }
142
+ }
110
143
  &:hover {
111
144
  color: color.get(get("color-hover"));
112
145
  background-color: color.get(get("background-color-hover"));
113
146
  box-shadow: get("box-shadow-hover");
114
- .button-verbose__title {
115
- color: color.get(get("title-color-hover"));
147
+ @if get("title-color-hover") {
148
+ #{ $prefix }__title {
149
+ color: color.get(get("title-color-hover"));
150
+ }
151
+ }
152
+ @if get("icon-color-hover") {
153
+ #{ $prefix }__icon {
154
+ color: color.get(get("icon-color-hover"));
155
+ }
156
+ }
157
+ @if (get("left-cap") and get("left-cap-color-hover")) {
158
+ &::after {
159
+ background-color: color.get(get("left-cap-color-hover"));
160
+ }
116
161
  }
117
162
  }
118
163
  }
119
- .button-verbose__title {
164
+ #{ $prefix }__title {
120
165
  display: block;
121
166
  margin-bottom: get("title-margin");
122
167
  color: color.get(get("title-color"));
123
168
  }
124
- .button-verbose__icon {
169
+ #{ $prefix }__icon {
125
170
  position: absolute;
126
171
  top: 50%;
127
172
  right: get("padding-x");
@@ -129,11 +174,14 @@ $config: (
129
174
  font-size: get("icon-font-size");
130
175
  color: color.get(get("icon-color"));
131
176
  }
132
- .button-verbose--inline {
177
+ #{ $prefix }--inline {
133
178
  display: inline-block;
134
179
  margin-right: get("margin-inline");
180
+ &:last-child {
181
+ margin-right: 0;
182
+ }
135
183
  }
136
- .button-verbose--full-width {
184
+ #{ $prefix }--full-width {
137
185
  width: 100%;
138
186
  }
139
187
  }
@@ -29,7 +29,7 @@
29
29
  /// @prop {Color} background-color [white] The background color of the card.
30
30
  /// @prop {Color} background-color-hover [rgb(242, 244, 246)] The background color of the card when hovered or focused.
31
31
  /// @prop {Dimension} max-width [28rem] The max-width of the card.
32
- /// @prop {Dimension} body-min-height [10rem] the min-height of the card body.
32
+ /// @prop {Dimension} body-min-height [8rem] the min-height of the card body.
33
33
  /// @prop {CssValue} border [1px solid #ccc] The card border.
34
34
  /// @prop {CssValue} border-hover [2px solid #278cca] The card border when hovered or focused.
35
35
  /// @prop {Dimension} header-margin [0.75em] The margin for the card header.
@@ -59,7 +59,7 @@
59
59
  /// @prop {CssValue} image-transition-timing-function [ease-in-out] The timing function for the image transition.
60
60
  /// @prop {Number} image-fit-padding [1rem] Padding on inside of image when using image fit modifier
61
61
  /// @prop {CssValue} image-fit-filter [drop-shadow(0 0px 8px rgba(0, 0, 0, 0.2))] Filter to use on image when using image fit modifier
62
- /// @prop {List} image-icon-max-width [30rem] Max width for image when using the modifier on the .card__image--icon
62
+ /// @prop {List} image-icon-max-width [10rem] Max width for image when using the modifier on the .card__image--icon
63
63
  /// @prop {List} image-transition-properties [(transform, filter)] The properties for the image transitions.
64
64
  /// @prop {String} horizontal-breakpoint [small] The breakpoint used to change the card to vertical if using the card--horizontal styling. Uses ulu's breakpoint module.
65
65
  /// @prop {Unit} horizontal-min-height [10rem] Minimum height when horizontal
@@ -94,7 +94,7 @@ $config: (
94
94
  "image-border" : null, // For when you have a margin
95
95
  "image-filter-hover" : null,
96
96
  "image-margin" : null,
97
- "image-icon-max-width" : 30rem,
97
+ "image-icon-max-width" : 8rem,
98
98
  "image-transform-hover" : null,
99
99
  "image-transition-duration" : 350ms,
100
100
  "image-transition-enabled" : true,
@@ -149,19 +149,34 @@ $config: (
149
149
 
150
150
  @mixin when-clickable($hover: false) {
151
151
  $prefix: selector.class("card");
152
+ // When proxy click enabled
152
153
  @if (get("clickable-card-enabled") and get("clickable-card-selector")) {
153
- #{ $prefix } {
154
- &#{ get("clickable-card-selector") } {
155
- @if ($hover) {
156
- #{ get("clickable-card-interact-selector") } {
157
- @content;
158
- }
159
- } @else {
154
+ #{ $prefix }#{ get("clickable-card-selector") },
155
+ a#{ $prefix },
156
+ button#{ $prefix },
157
+ #{ $prefix }--clickable {
158
+ @if ($hover) {
159
+ #{ get("clickable-card-interact-selector") } {
160
160
  @content;
161
161
  }
162
+ } @else {
163
+ @content;
162
164
  }
163
165
  }
164
- }
166
+ // Without proxy click (only if interactive)
167
+ } @else {
168
+ a#{ $prefix },
169
+ button#{ $prefix },
170
+ #{ $prefix }--clickable {
171
+ @if ($hover) {
172
+ #{ get("clickable-card-interact-selector") } {
173
+ @content;
174
+ }
175
+ } @else {
176
+ @content;
177
+ }
178
+ }
179
+ }
165
180
  }
166
181
 
167
182
 
@@ -238,14 +253,15 @@ $config: (
238
253
  margin-bottom: get("title-margin");
239
254
  display: block;
240
255
  font-weight: get("title-font-weight");
241
- @if get("title-color-hover") {
242
- &:hover,
243
- &:focus {
244
- color: color.get(get("title-color-hover"));
245
- }
246
- }
247
256
  #{ $prefix }__title-link {
248
257
  all: unset;
258
+ cursor: pointer;
259
+ @if get("title-color-hover") {
260
+ &:hover,
261
+ &:focus {
262
+ color: color.get(get("title-color-hover"));
263
+ }
264
+ }
249
265
  }
250
266
  }
251
267
  @if get("title-color-hover") {
@@ -307,7 +323,7 @@ $config: (
307
323
  }
308
324
 
309
325
  #{ $prefix }__image--icon {
310
- background-color: transparent;
326
+ // background-color: transparent;
311
327
  display: flex;
312
328
  align-items: center;
313
329
  justify-content: center;
@@ -7,54 +7,62 @@
7
7
  @use "sass:meta";
8
8
  @use "sass:math";
9
9
  @use "sass:list";
10
+
10
11
  @use "../selector";
11
12
  @use "../utils";
12
13
  @use "../color";
13
14
  @use "../element";
14
15
  @use "../typography";
15
16
 
17
+ // Used for function fallback
18
+ $-fallbacks: (
19
+ "description-line-height" : (
20
+ "function" : meta.get-function("get", false, "typography"),
21
+ "property" : "line-height-dense",
22
+ ),
23
+ );
24
+
16
25
  /// Module Settings
17
26
  /// @type Map
18
27
  /// @prop {CssValue} color [inherit] Color of the text of the form.
19
- /// @prop {CssValue} color-placeholder ["type-tertiary"] Color for the placeh
20
- /// @prop {} drupal [false]
21
- /// @prop {} error-color ["danger"]
22
- /// @prop {} error-highlight-color [rgb(251, 242, 242)]
23
- /// @prop {} error-selector [".is-danger"]
24
- /// @prop {} file-button-style [true]
25
- /// @prop {} font-weight-label [bold]
26
- /// @prop {} font-weight-legend [bold]
27
- /// @prop {} font-weight-placeholder [normal]
28
- /// @prop {} font-weight-input [null]
29
- /// @prop {} font-weight-textarea [null]
30
- /// @prop {} font-weight-select [null]
31
- /// @prop {} input-border [element.get-rule-style()]
32
- /// @prop {} input-border-radius [0]
33
- /// @prop {} input-margin-y [0.75em]
34
- /// @prop {} input-padding-x [0.5em]
35
- /// @prop {} input-padding-y [0.25em]
36
- /// @prop {} input-min-width [10em]
37
- /// @prop {} input-background-color [white]
38
- /// @prop {} item-border-radius [null]
39
- /// @prop {} item-highlight-width [6px]
40
- /// @prop {} required-color ["danger"]
41
- /// @prop {} text-input-margin-bottom [0.5em]
42
- /// @prop {} text-input-margin-top [1em]
43
- /// @prop {} warning-color ["warning"]
44
- /// @prop {} warning-highlight-color [rgb(255, 249, 237)]
45
- /// @prop {} warning-selector [".is-warning"]
46
- /// @prop {} check-input-color [currentColor]
47
- /// @prop {} check-input-size [1.15em]
48
- /// @prop {} check-input-touch-size [2em]
49
- /// @prop {} check-input-background-color [white]
50
- /// @prop {} check-input-background-color-checked [white]
51
- /// @prop {} check-input-background-color-hover [white]
52
- /// @prop {} check-input-background-color-indeterminate [white]
53
- /// @prop {} check-input-border [null]
54
- /// @prop {} check-input-border-color-hover [null]
55
- /// @prop {} check-input-border-color-checked [null]
56
- /// @prop {} check-input-border-color-indeterminate [null]
57
- /// @prop {} check-input-border-color-focus [null]
28
+ /// @prop {CssValue} color-placeholder ["type-tertiary"] Color for the placeholder text.
29
+ /// @prop {Boolean} drupal [false] Toggle if using drupal to include drupal specific styling.
30
+ /// @prop {Color} error-color ["danger"] Type color for errors.
31
+ /// @prop {Color} error-highlight-color [rgb(251, 242, 242)] Outline color of error container.
32
+ /// @prop {String} error-selector [".is-danger"] Class for error styling.
33
+ /// @prop {} file-button-style [true] @joe-check should this have a fallback
34
+ /// @prop {CssValue} font-weight-label [bold] Font weight of the labels.
35
+ /// @prop {CssValue} font-weight-legend [bold] Font weight of the legend.
36
+ /// @prop {CssValue} font-weight-placeholder [normal] Font weight of placeholder text.
37
+ /// @prop {CssValue} font-weight-input [null] Font weight of input text.
38
+ /// @prop {CssValue} font-weight-textarea [null] Font weight of textarea text.
39
+ /// @prop {CssValue} font-weight-select [null] Font weight of select text.
40
+ /// @prop {CssValue} input-border [element.get-rule-style()] Border of the input.
41
+ /// @prop {Dimension} input-border-radius [0] Border radius of the input.
42
+ /// @prop {Dimension} input-padding-x [0.5em] Horizontal padding of the input.
43
+ /// @prop {Dimension} input-padding-y [0.25em] Vertical padding of the input.
44
+ /// @prop {Dimension} input-min-width [10em] Min width of the input.
45
+ /// @prop {Color} input-background-color [white] Background color of the input.
46
+ /// @prop {Dimension} item-border-radius [null] Border radius for __item.
47
+ /// @prop {Dimension} item-highlight-width [6px] Width of the item box highlight.
48
+ /// @prop {Color} required-color ["danger"] Color for required text.
49
+ /// @prop {Dimension} text-input-margin-bottom [0.5em]
50
+ /// @prop {Dimension} text-input-margin-top [1em]
51
+ /// @prop {Color} warning-color ["warning"]
52
+ /// @prop {Color} warning-highlight-color [rgb(255, 249, 237)]
53
+ /// @prop {String} warning-selector [".is-warning"]
54
+ /// @prop {Color} check-input-color [currentColor]
55
+ /// @prop {Dimension} check-input-size [1.15em]
56
+ /// @prop {Dimension} check-input-touch-size [2em]
57
+ /// @prop {Color} check-input-background-color [white]
58
+ /// @prop {Color} check-input-background-color-checked [white]
59
+ /// @prop {Color} check-input-background-color-hover [white]
60
+ /// @prop {Color} check-input-background-color-indeterminate [white]
61
+ /// @prop {} check-input-border [null] @joe-check check how this is called with a fallback in the styles mixin
62
+ /// @prop {Color} check-input-border-color-hover [null]
63
+ /// @prop {Color} check-input-border-color-checked [null]
64
+ /// @prop {Color} check-input-border-color-indeterminate [null]
65
+ /// @prop {Color} check-input-border-color-focus [null]
58
66
  /// @prop {} check-input-outline [null]
59
67
  /// @prop {} check-input-outline-hover [null]
60
68
  /// @prop {} check-input-outline-checked [null]
@@ -76,6 +84,7 @@
76
84
  /// @prop {} description-color [false]
77
85
  /// @prop {} description-margin [(0.25em 0)]
78
86
  /// @prop {} description-max-width [25em]
87
+ /// @prop {Number} description-line-height [true] Line height for description element, defaults to typograpahy line-height-dense
79
88
  /// @prop {} fieldset-background [transparent]
80
89
  /// @prop {} fieldset-border [none]
81
90
  /// @prop {} fieldset-margin-bottom [1rem]
@@ -160,6 +169,7 @@ $config: (
160
169
  "description-color" : false,
161
170
  "description-margin" : (0.25em 0),
162
171
  "description-max-width" : 25em,
172
+ "description-line-height" : true,
163
173
  "fieldset-background" : transparent,
164
174
  "fieldset-border" : none,
165
175
  "fieldset-margin-bottom" : 1rem,
@@ -198,7 +208,8 @@ $config: (
198
208
  /// @include ulu.component-form-theme-get("property");
199
209
 
200
210
  @function get($name) {
201
- @return utils.require-map-get($config, $name, "component-form-theme [config]");
211
+ $value: utils.require-map-get($config, $name, "component-form-theme [config]");
212
+ @return utils.function-fallback($name, $value, $-fallbacks);
202
213
  }
203
214
 
204
215
  @function -fallback($op1, $op2) {
@@ -500,6 +511,7 @@ $config: (
500
511
  margin: get("description-margin");
501
512
  font-style: italic;
502
513
  @include typography.size("small", null, true);
514
+ line-height: get("description-line-height");
503
515
  max-width: get("description-max-width");
504
516
  color: color.get(get("description-color"));
505
517
  }