maverick-wave 5.30.0 → 5.32.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.
Files changed (147) hide show
  1. package/README.md +2 -2
  2. package/maverick-wave.min.css +2 -2
  3. package/package.json +8 -2
  4. package/src/scss/abstracts/_variables.scss +2 -0
  5. package/src/scss/components/_modals.scss +23 -9
  6. package/src/scss/components/_testimonial.scss +2 -0
  7. package/src/scss/layout/_home.scss +46 -0
  8. package/src/scss/layout/_main.scss +20 -0
  9. package/src/scss/layout/_parallax.scss +2 -2
  10. package/src/scss/main-lean.scss +8 -3
  11. package/.claude/settings.local.json +0 -43
  12. package/.claude/skills/mw-maverick-wave/SKILL.md +0 -532
  13. package/.claude/skills/mw-maverick-wave/examples/angular-form.md +0 -279
  14. package/.claude/skills/mw-maverick-wave/examples/angular-list-page.md +0 -309
  15. package/.claude/skills/mw-maverick-wave/examples/angular-services.md +0 -538
  16. package/.claude/skills/mw-maverick-wave/examples/static-landing-page.md +0 -530
  17. package/.claude/skills/mw-maverick-wave/references/components.md +0 -2170
  18. package/.claude/skills/mw-maverick-wave/references/forms.md +0 -358
  19. package/.claude/skills/mw-maverick-wave/references/javascript.md +0 -164
  20. package/.claude/skills/mw-maverick-wave/references/layout.md +0 -764
  21. package/.claude/skills/mw-maverick-wave/references/theming.md +0 -530
  22. package/.github/workflows/ci.yml +0 -41
  23. package/.idea/codeStyles/Project.xml +0 -59
  24. package/.idea/codeStyles/codeStyleConfig.xml +0 -5
  25. package/.idea/maverick-wave.iml +0 -12
  26. package/.idea/modules.xml +0 -8
  27. package/.idea/prettier.xml +0 -6
  28. package/.idea/vcs.xml +0 -6
  29. package/.prettierignore +0 -8
  30. package/.prettierrc.json +0 -7
  31. package/CHANGELOG.md +0 -956
  32. package/CLAUDE.md +0 -60
  33. package/gulpfile.js +0 -167
  34. package/index.html +0 -1730
  35. package/release.sh +0 -31
  36. package/scripts/verify.js +0 -252
  37. package/src/assets/favicon/apple-touch-icon.png +0 -0
  38. package/src/assets/favicon/favicon-96x96.png +0 -0
  39. package/src/assets/favicon/favicon.svg +0 -1
  40. package/src/assets/favicon/site.webmanifest +0 -37
  41. package/src/assets/favicon/web-app-manifest-192x192.png +0 -0
  42. package/src/assets/favicon/web-app-manifest-512x512.png +0 -0
  43. package/src/assets/favicon.ico +0 -0
  44. package/src/assets/header-logo.svg +0 -24
  45. package/src/assets/images/gallery-city.svg +0 -49
  46. package/src/assets/images/gallery-desert.svg +0 -25
  47. package/src/assets/images/gallery-forest.svg +0 -46
  48. package/src/assets/images/gallery-lake.svg +0 -26
  49. package/src/assets/images/gallery-mountain.svg +0 -19
  50. package/src/assets/images/gallery-ocean.svg +0 -26
  51. package/src/assets/images/gallery-oldtown.svg +0 -41
  52. package/src/assets/images/gallery-snow.svg +0 -39
  53. package/src/assets/images/photo-balloon.svg +0 -35
  54. package/src/assets/images/photo-forest-path.svg +0 -31
  55. package/src/assets/images/photo-lighthouse.svg +0 -42
  56. package/src/assets/images/photo-palm.svg +0 -27
  57. package/src/assets/images/photo-peak.svg +0 -27
  58. package/src/assets/images/photo-tower.svg +0 -34
  59. package/src/assets/images/photo-waterfall.svg +0 -32
  60. package/src/assets/images/slider-field.svg +0 -124
  61. package/src/assets/images/slider-forest.svg +0 -33
  62. package/src/assets/images/slider-lake.svg +0 -35
  63. package/src/assets/images/slider-mountains.svg +0 -29
  64. package/src/assets/images/slider-trees.svg +0 -41
  65. package/src/assets/images/story-aurora.svg +0 -36
  66. package/src/assets/images/story-beach.svg +0 -34
  67. package/src/assets/images/story-stars.svg +0 -35
  68. package/src/assets/images/tile-analytics.svg +0 -22
  69. package/src/assets/images/tile-cloud.svg +0 -19
  70. package/src/assets/images/tile-ecommerce.svg +0 -14
  71. package/src/assets/images/tile-enterprise.svg +0 -22
  72. package/src/assets/images/tile-marketing.svg +0 -16
  73. package/src/assets/media/demo-chime.wav +0 -0
  74. package/src/assets/media/story-sunrise.jpg +0 -0
  75. package/src/assets/media/story-sunrise.mp4 +0 -0
  76. package/src/partials/accordions-container.html +0 -179
  77. package/src/partials/alerts-container.html +0 -151
  78. package/src/partials/announcement-container.html +0 -67
  79. package/src/partials/avatars-container.html +0 -229
  80. package/src/partials/badges-container.html +0 -114
  81. package/src/partials/blog-posts-container.html +0 -158
  82. package/src/partials/breadcrumbs-container.html +0 -126
  83. package/src/partials/button-bar-container.html +0 -175
  84. package/src/partials/buttons-container.html +0 -272
  85. package/src/partials/calendar-container.html +0 -203
  86. package/src/partials/cards-container.html +0 -727
  87. package/src/partials/code-container.html +0 -194
  88. package/src/partials/colors-container.html +0 -263
  89. package/src/partials/coming-soon-container.html +0 -10
  90. package/src/partials/contact-container.html +0 -85
  91. package/src/partials/content-slider-container.html +0 -36
  92. package/src/partials/divider-container.html +0 -70
  93. package/src/partials/documentation-container.html +0 -204
  94. package/src/partials/dropdown-container.html +0 -119
  95. package/src/partials/empty-state-container.html +0 -79
  96. package/src/partials/feed-container.html +0 -506
  97. package/src/partials/footer-container.html +0 -113
  98. package/src/partials/form-container.html +0 -262
  99. package/src/partials/form-elements-container.html +0 -616
  100. package/src/partials/form-field-container.html +0 -166
  101. package/src/partials/gallery-container.html +0 -62
  102. package/src/partials/get-started-container.html +0 -423
  103. package/src/partials/grid-container.html +0 -191
  104. package/src/partials/header-container.html +0 -69
  105. package/src/partials/header-utilities-container.html +0 -331
  106. package/src/partials/highlights-container.html +0 -71
  107. package/src/partials/history-container.html +0 -67
  108. package/src/partials/home-container.html +0 -31
  109. package/src/partials/html-lists-container.html +0 -63
  110. package/src/partials/info-container.html +0 -104
  111. package/src/partials/input-group-container.html +0 -299
  112. package/src/partials/item-lists-container.html +0 -368
  113. package/src/partials/kanban-container.html +0 -459
  114. package/src/partials/kbd-container.html +0 -63
  115. package/src/partials/leader-row-container.html +0 -139
  116. package/src/partials/login-container.html +0 -65
  117. package/src/partials/lunch-menu-container.html +0 -341
  118. package/src/partials/media-container.html +0 -27
  119. package/src/partials/meta-info-container.html +0 -21
  120. package/src/partials/modals-container.html +0 -199
  121. package/src/partials/mosaic-container.html +0 -173
  122. package/src/partials/page-header-container.html +0 -78
  123. package/src/partials/pagination-container.html +0 -64
  124. package/src/partials/palette-container.html +0 -480
  125. package/src/partials/panels-container.html +0 -126
  126. package/src/partials/parallax-container.html +0 -147
  127. package/src/partials/portrait-gallery-container.html +0 -175
  128. package/src/partials/preview-container.html +0 -136
  129. package/src/partials/pricing-container.html +0 -523
  130. package/src/partials/progress-container.html +0 -230
  131. package/src/partials/prose-container.html +0 -43
  132. package/src/partials/ratings-container.html +0 -104
  133. package/src/partials/section-head-container.html +0 -77
  134. package/src/partials/segmented-container.html +0 -66
  135. package/src/partials/skeleton-container.html +0 -87
  136. package/src/partials/spinners-container.html +0 -96
  137. package/src/partials/stepper-container.html +0 -111
  138. package/src/partials/stories-container.html +0 -182
  139. package/src/partials/tables-container.html +0 -309
  140. package/src/partials/tabs-container.html +0 -290
  141. package/src/partials/tags-container.html +0 -242
  142. package/src/partials/techstack-bucket-container.html +0 -187
  143. package/src/partials/testimonials-container.html +0 -88
  144. package/src/partials/tiles-container.html +0 -247
  145. package/src/partials/timelines-container.html +0 -196
  146. package/src/partials/typography-container.html +0 -74
  147. package/src/partials/utilities-container.html +0 -553
@@ -1,175 +0,0 @@
1
- <h3 class="mw-section-subtitle">Button Bars</h3>
2
- <p class="mw-text-muted mw-text-measure">
3
- A framed row of actions. Below 576px it stacks and every button takes the full
4
- width. The colour variants style whatever is inside them, so a bar of five
5
- buttons needs one class rather than five.
6
- </p>
7
-
8
- <div class="mw-grid-stack-stretch">
9
- <div>
10
- <h3 class="mw-mb-4">Basic Button Bar</h3>
11
- <div class="mw-button-bar">
12
- <button class="mw-btn mw-btn-primary">Previous Post</button>
13
- <button class="mw-btn mw-btn-primary">Back to Main</button>
14
- <button class="mw-btn mw-btn-primary">Next Post</button>
15
- <button class="mw-btn mw-btn-primary">Next Post</button>
16
- <button class="mw-btn mw-btn-primary">Next Post</button>
17
- <button class="mw-btn mw-btn-primary">Next Post</button>
18
- <button class="mw-btn mw-btn-primary">Next Post</button>
19
- <button class="mw-btn mw-btn-primary">Next Post</button>
20
- <button class="mw-btn mw-btn-primary">Next Post</button>
21
- <button class="mw-btn mw-btn-primary">Next Post</button>
22
- </div>
23
- </div>
24
-
25
- <div>
26
- <h3 class="mw-mb-4">Auto-styled Primary Button Bar</h3>
27
- <div class="mw-button-bar mw-button-bar-primary">
28
- <button class="mw-btn">Previous Post</button>
29
- <button class="mw-btn">Back to Main</button>
30
- <button class="mw-btn">Next Post</button>
31
- </div>
32
- </div>
33
-
34
- <div>
35
- <h3 class="mw-mb-4">Auto-styled Secondary Button Bar</h3>
36
- <div class="mw-button-bar mw-button-bar-secondary">
37
- <button class="mw-btn">Previous Post</button>
38
- <button class="mw-btn">Back to Main</button>
39
- <button class="mw-btn">Next Post</button>
40
- </div>
41
- </div>
42
-
43
- <div>
44
- <h3 class="mw-mb-4">Outline Button Bar</h3>
45
- <div class="mw-button-bar mw-button-bar-outline">
46
- <button class="mw-btn">Previous Post</button>
47
- <button class="mw-btn">Back to Main</button>
48
- <button class="mw-btn">Next Post</button>
49
- </div>
50
- </div>
51
-
52
- <div>
53
- <h3 class="mw-mb-4">Navigation Style (Mixed Buttons)</h3>
54
- <div class="mw-button-bar mw-button-bar-nav">
55
- <button class="mw-btn"><i class="fas fa-arrow-left"></i>Previous</button>
56
- <button class="mw-btn">Back to Main</button>
57
- <button class="mw-btn">Next<i class="fas fa-arrow-right"></i></button>
58
- </div>
59
- </div>
60
-
61
- <div>
62
- <h3 class="mw-mb-4">Space Between Layout</h3>
63
- <div class="mw-button-bar mw-button-bar-between">
64
- <button class="mw-btn mw-btn-outline">
65
- <i class="fas fa-arrow-left"></i>Previous
66
- </button>
67
- <button class="mw-btn mw-btn-primary">Main</button>
68
- <button class="mw-btn mw-btn-outline">
69
- Next<i class="fas fa-arrow-right"></i>
70
- </button>
71
- </div>
72
- </div>
73
-
74
- <div>
75
- <h3 class="mw-mb-4">Button Bar Alignments</h3>
76
- <div class="mw-d-flex mw-flex-column mw-gap-4">
77
- <div>
78
- <p class="mw-mb-2"><strong>Left Aligned:</strong></p>
79
- <div class="mw-button-bar mw-button-bar-left mw-button-bar-primary">
80
- <button class="mw-btn">Left</button>
81
- <button class="mw-btn">Center</button>
82
- <button class="mw-btn">Right</button>
83
- </div>
84
- </div>
85
- <div>
86
- <p class="mw-mb-2"><strong>Right Aligned:</strong></p>
87
- <div class="mw-button-bar mw-button-bar-right mw-button-bar-secondary">
88
- <button class="mw-btn">Left</button>
89
- <button class="mw-btn">Center</button>
90
- <button class="mw-btn">Right</button>
91
- </div>
92
- </div>
93
- <div>
94
- <p class="mw-mb-2">
95
- <strong>Center Aligned (also the default):</strong>
96
- </p>
97
- <div class="mw-button-bar mw-button-bar-center mw-button-bar-outline">
98
- <button class="mw-btn">Left</button>
99
- <button class="mw-btn">Center</button>
100
- <button class="mw-btn">Right</button>
101
- </div>
102
- </div>
103
- </div>
104
- </div>
105
-
106
- <div>
107
- <h3 class="mw-mb-4">Button Bar Sizes</h3>
108
- <div class="mw-d-flex mw-flex-column mw-gap-4">
109
- <div>
110
- <p class="mw-mb-2"><strong>Small:</strong></p>
111
- <div class="mw-button-bar mw-button-bar-sm mw-button-bar-secondary">
112
- <button class="mw-btn mw-btn-sm">Prev</button>
113
- <button class="mw-btn mw-btn-sm">Main</button>
114
- <button class="mw-btn mw-btn-sm">Next</button>
115
- </div>
116
- </div>
117
- <div>
118
- <p class="mw-mb-2"><strong>Default:</strong></p>
119
- <div class="mw-button-bar mw-button-bar-primary">
120
- <button class="mw-btn">Previous</button>
121
- <button class="mw-btn">Main</button>
122
- <button class="mw-btn">Next</button>
123
- </div>
124
- </div>
125
- <div>
126
- <p class="mw-mb-2"><strong>Large:</strong></p>
127
- <div class="mw-button-bar mw-button-bar-lg mw-button-bar-primary">
128
- <button class="mw-btn">Previous</button>
129
- <button class="mw-btn">Main</button>
130
- <button class="mw-btn">Next</button>
131
- </div>
132
- </div>
133
- </div>
134
- </div>
135
-
136
- <div>
137
- <h3 class="mw-mb-4">Button Bars with Icons</h3>
138
- <div class="mw-d-flex mw-flex-column mw-gap-4">
139
- <div>
140
- <p class="mw-mb-2"><strong>Navigation with Icons:</strong></p>
141
- <div class="mw-button-bar mw-button-bar-nav">
142
- <button class="mw-btn">
143
- <i class="fas fa-arrow-left"></i>
144
- Previous Post
145
- </button>
146
- <button class="mw-btn">
147
- <i class="fas fa-home"></i>
148
- Back to Main
149
- </button>
150
- <button class="mw-btn">
151
- Next Post
152
- <i class="fas fa-arrow-right"></i>
153
- </button>
154
- </div>
155
- </div>
156
- <div>
157
- <p class="mw-mb-2"><strong>Action Buttons:</strong></p>
158
- <div class="mw-button-bar mw-button-bar-primary">
159
- <button class="mw-btn">
160
- <i class="fas fa-save"></i>
161
- Save Draft
162
- </button>
163
- <button class="mw-btn">
164
- <i class="fas fa-eye"></i>
165
- Preview
166
- </button>
167
- <button class="mw-btn">
168
- <i class="fas fa-upload"></i>
169
- Publish
170
- </button>
171
- </div>
172
- </div>
173
- </div>
174
- </div>
175
- </div>
@@ -1,272 +0,0 @@
1
- <h3 class="mw-section-subtitle">Buttons</h3>
2
- <p class="mw-text-muted mw-text-measure">
3
- Three emphasis levels: primary fills, outline draws a line, ghost does neither
4
- until you point at it. Every variant dips a pixel when pressed - on touch that
5
- press is the only feedback there is.
6
- </p>
7
-
8
- <div class="mw-grid-1">
9
- <div>
10
- <h3 class="mw-mb-4">Button Styles</h3>
11
- <div class="mw-card mw-card-simple">
12
- <div class="mw-d-flex mw-flex-wrap mw-items-center mw-gap-4">
13
- <button type="button" class="mw-btn mw-btn-primary">
14
- Primary Button
15
- </button>
16
- <button type="button" class="mw-btn mw-btn-secondary">
17
- Secondary Button
18
- </button>
19
- <button type="button" class="mw-btn mw-btn-danger">
20
- Danger Button
21
- </button>
22
- <button type="button" class="mw-btn mw-btn-success">
23
- Success Button
24
- </button>
25
- <button type="button" class="mw-btn mw-btn-outline">
26
- Outline Button
27
- </button>
28
- <button type="button" class="mw-btn mw-btn-link">Link Button</button>
29
- <button type="button" class="mw-btn mw-btn-link-muted">
30
- Link Muted
31
- </button>
32
- <button type="button" class="mw-btn mw-btn-primary" disabled>
33
- Primary Button Disabled
34
- </button>
35
- </div>
36
- </div>
37
- </div>
38
-
39
- <div>
40
- <h3 class="mw-mb-4">Ghost, Icon &amp; Block</h3>
41
- <div class="mw-card mw-card-simple mw-grid-1 mw-gap-6">
42
- <div>
43
- <h4 class="mw-text-medium mw-mb-2">Ghost</h4>
44
- <div class="mw-d-flex mw-flex-wrap mw-items-center mw-gap-3">
45
- <button type="button" class="mw-btn mw-btn-ghost">Rename</button>
46
- <button type="button" class="mw-btn mw-btn-ghost mw-active">
47
- Selected
48
- </button>
49
- <button type="button" class="mw-btn mw-btn-ghost mw-btn-ghost-danger">
50
- Remove
51
- </button>
52
- </div>
53
- <p class="mw-text-muted mw-text-sm mw-mt-3 mw-mb-0">
54
- The third emphasis level: primary fills, outline draws a line, ghost
55
- does neither until you point at it. For a toolbar or a card's own
56
- actions, where five outlined boxes would fight the content under them.
57
- Not <code>mw-btn-plain</code> - this keeps the shape, the padding and
58
- the hit area, it just does not paint them at rest.
59
- </p>
60
- </div>
61
- <div>
62
- <h4 class="mw-text-medium mw-mb-2">Icon only</h4>
63
- <div class="mw-d-flex mw-flex-wrap mw-items-center mw-gap-3">
64
- <button
65
- type="button"
66
- class="mw-btn mw-btn-ghost mw-btn-icon mw-btn-sm"
67
- aria-label="Edit"
68
- data-tooltip="Edit"
69
- >
70
- <i class="fas fa-pen"></i>
71
- </button>
72
- <button
73
- type="button"
74
- class="mw-btn mw-btn-ghost mw-btn-icon"
75
- aria-label="Duplicate"
76
- data-tooltip="Duplicate"
77
- >
78
- <i class="fas fa-copy"></i>
79
- </button>
80
- <button
81
- type="button"
82
- class="mw-btn mw-btn-outline mw-btn-icon"
83
- aria-label="Share"
84
- data-tooltip="Share"
85
- >
86
- <i class="fas fa-share"></i>
87
- </button>
88
- <button
89
- type="button"
90
- class="mw-btn mw-btn-primary mw-btn-icon mw-btn-lg"
91
- aria-label="Add"
92
- data-tooltip="Add"
93
- >
94
- <i class="fas fa-plus"></i>
95
- </button>
96
- </div>
97
- <p class="mw-text-muted mw-text-sm mw-mt-3 mw-mb-0">
98
- <code>mw-btn-icon</code> makes the button square. Without it the
99
- horizontal padding is the only thing setting the width, so an icon
100
- button ends up wider than it is tall and a row of them lines up on
101
- nothing. It always needs an <code>aria-label</code> - there is no text
102
- to read out.
103
- </p>
104
- </div>
105
- <div>
106
- <h4 class="mw-text-medium mw-mb-2">Block</h4>
107
- <button type="button" class="mw-btn mw-btn-primary mw-btn-block">
108
- Sign in
109
- </button>
110
- <p class="mw-text-muted mw-text-sm mw-mt-3 mw-mb-0">
111
- <code>mw-btn-block</code> takes the full width - the one action on a
112
- sheet, a sign-in form, a narrow sidebar.
113
- </p>
114
- </div>
115
- </div>
116
- </div>
117
-
118
- <div>
119
- <h3 class="mw-mb-4">Button Sizes</h3>
120
- <div class="mw-card mw-card-simple">
121
- <div class="mw-d-flex mw-flex-wrap mw-items-center mw-gap-4">
122
- <button type="button" class="mw-btn mw-btn-primary mw-btn-sm">
123
- Small Button
124
- </button>
125
- <button type="button" class="mw-btn mw-btn-primary">
126
- Default Button
127
- </button>
128
- <button type="button" class="mw-btn mw-btn-primary mw-btn-lg">
129
- Large Button
130
- </button>
131
- </div>
132
- </div>
133
- </div>
134
-
135
- <div>
136
- <h3 class="mw-mb-4">Buttons with Icons</h3>
137
- <div class="mw-card mw-card-simple">
138
- <div class="mw-d-flex mw-flex-wrap mw-items-center mw-gap-4">
139
- <button type="button" class="mw-btn mw-btn-primary">
140
- <i class="fas fa-save"></i>
141
- Save Changes
142
- </button>
143
-
144
- <button type="button" class="mw-btn mw-btn-secondary">
145
- <i class="fas fa-plus"></i>
146
- Add Item
147
- </button>
148
-
149
- <button type="button" href="#" class="mw-btn mw-btn-outline">
150
- <i class="fas fa-arrow-left"></i>
151
- Go Back
152
- </button>
153
-
154
- <button type="button" class="mw-btn mw-btn-primary mw-btn-sm">
155
- <i class="fas fa-check"></i>
156
- OK
157
- </button>
158
-
159
- <button type="button" class="mw-btn mw-btn-outline mw-btn-lg">
160
- <i class="fas fa-upload"></i>
161
- Upload File
162
- </button>
163
- </div>
164
- </div>
165
- </div>
166
-
167
- <div>
168
- <h3 class="mw-mb-4">Mini Icon Buttons</h3>
169
- <div class="mw-card mw-card-simple">
170
- <div class="mw-d-flex mw-flex-wrap mw-items-center mw-gap-4">
171
- <button type="button" class="mw-btn-mini" title="Default / Plus">
172
- <i class="fas fa-plus"></i>
173
- </button>
174
- <button
175
- type="button"
176
- class="mw-btn-mini mw-btn-mini-danger"
177
- title="Danger / Minus"
178
- >
179
- <i class="fas fa-minus"></i>
180
- </button>
181
- <button
182
- type="button"
183
- class="mw-btn-mini mw-btn-mini-success"
184
- title="Success / Check"
185
- >
186
- <i class="fas fa-check"></i>
187
- </button>
188
- <button
189
- type="button"
190
- class="mw-btn-mini mw-btn-mini-primary"
191
- title="Primary / Address Card"
192
- >
193
- <i class="fas fa-address-card"></i>
194
- </button>
195
- <a
196
- href="#"
197
- class="mw-btn-mini mw-btn-mini-primary"
198
- title="Als Link (a-Tag)"
199
- >
200
- <i class="fas fa-external-link-alt"></i>
201
- </a>
202
- <button
203
- type="button"
204
- class="mw-btn-mini"
205
- disabled
206
- title="Disabled Mini"
207
- >
208
- <i class="fas fa-times"></i>
209
- </button>
210
- </div>
211
- </div>
212
- </div>
213
- </div>
214
-
215
- <h3 class="mw-mb-4 mw-mt-6">Plain Buttons</h3>
216
- <p class="mw-text-muted">
217
- <code>mw-btn-plain</code> is for everywhere a <code>&lt;button&gt;</code> is
218
- the right element and a button is the wrong look - a calendar day, a time in a
219
- request row, a modal backdrop. It brings nothing but the focus ring and the
220
- pointer; everything else it inherits. Not the same as
221
- <code>mw-btn-link</code>, which is a button dressed as a link with a colour
222
- and a control height of its own, nor the same as <code>mw-link</code>, which
223
- is the link inside a sentence.
224
- </p>
225
- <div class="mw-card mw-card-simple">
226
- <p class="mw-mb-4">
227
- Booked for
228
- <button type="button" class="mw-btn-plain mw-text-bold">14:30</button>
229
- on
230
- <button type="button" class="mw-btn-plain mw-text-bold">19.09.2026</button>
231
- - both are real buttons, reachable by tab.
232
- </p>
233
- <div class="mw-d-flex mw-gap-4 mw-flex-wrap">
234
- <button type="button" class="mw-btn mw-btn-link">mw-btn-link</button>
235
- <button type="button" class="mw-btn-plain">mw-btn-plain</button>
236
- <button type="button" class="mw-btn-plain" disabled>disabled</button>
237
- </div>
238
- </div>
239
-
240
- <h3 class="mw-mb-4 mw-mt-6">Text Links</h3>
241
- <p class="mw-text-muted">
242
- <code>mw-link</code> is the link inside a sentence,
243
- <code>mw-link-muted</code> the quieter one. Same look as
244
- <code>mw-btn-link</code>, without the button: <code>mw-btn</code> carries a
245
- control height, and in running text that lifts the one line the link sits on
246
- above every line around it - glaring in a footer disclaimer, where the text is
247
- a size smaller to begin with. So <code>mw-link</code> in a paragraph,
248
- <code>mw-btn mw-btn-link</code> where the link really is one of several
249
- buttons and has to line up with them. Both work on an
250
- <code>&lt;a&gt;</code> and on a <code>&lt;button&gt;</code>.
251
- </p>
252
- <div class="mw-card mw-card-simple">
253
- <p class="mw-mb-0">
254
- Built with
255
- <a href="https://astro.build" target="_blank" class="mw-link">Astro</a>
256
- and written up in the
257
- <a href="#get-started" class="mw-link-muted">Get Started</a> section - both
258
- sit on the line, not above it.
259
- </p>
260
- </div>
261
-
262
- <h3 class="mw-mb-4 mw-mt-6">Touch Targets</h3>
263
- <p class="mw-text-muted">
264
- On a coarse pointer or below 768px the compact controls grow to a size a thumb
265
- can actually hit: <code>mw-btn-sm</code>, <code>mw-input-sm</code> and
266
- <code>mw-select-sm</code> to 2.5rem, a tab to 2.75rem, a calendar day to 44px.
267
- WCAG 2.5.8 puts the floor at 24px, and that is a floor, not a goal.
268
- <code>mw-btn-mini</code> keeps its 18px circle - it sits in tag rows and table
269
- cells where a bigger one would shift the layout - and grows its hit area to
270
- 28px instead, as does a kanban action button on its 32px box. Nothing to
271
- switch on; resize this page or open it on a phone.
272
- </p>
@@ -1,203 +0,0 @@
1
- <h3 class="mw-section-subtitle">Calendar</h3>
2
- <p class="mw-text-muted mw-text-measure">
3
- Month, compact and week share every class - a week is seven cells instead of
4
- forty-two, <code>mw-calendar-compact</code> drops the dots and a third of the
5
- height. The status dots come in as
6
- <code>data-calendar-markers='{"2026-08-19": ["success", "warning"]}'</code>.
7
- </p>
8
- <p class="mw-text-muted">
9
- What a dot <em>means</em> belongs to the caller: the same calendar reads
10
- &ldquo;request pending / booked / time offered&rdquo; in a scheduling app and
11
- something else entirely on a public booking page. So the colour is a property,
12
- <code>--mw-calendar-dot</code>, settable per dot or inherited from the cell -
13
- <code>mw-calendar-dot-success</code> and friends are named presets for it, not
14
- the only way in.
15
- </p>
16
- <div class="mw-card mw-card-simple mw-mb-6">
17
- <div class="mw-row-split mw-row-split-center">
18
- <span>Any colour, set on the dot itself</span>
19
- <span class="mw-d-flex mw-items-center mw-gap-3">
20
- <span class="mw-calendar-dot" style="--mw-calendar-dot: #7a4fd4"></span>
21
- <span class="mw-calendar-dot" style="--mw-calendar-dot: #d47a4f"></span>
22
- <span class="mw-calendar-dot mw-calendar-dot-success"></span>
23
- <code>--mw-calendar-dot</code>
24
- </span>
25
- </div>
26
- </div>
27
-
28
- <div class="mw-grid-2 calendar-demos mw-my-6">
29
- <div class="calendar-demo">
30
- <h4 class="mw-mb-2">Month</h4>
31
- <div class="mw-segmented mw-mb-4" data-modifier-demo="calendar-month">
32
- <button
33
- type="button"
34
- class="mw-segmented-item mw-active"
35
- data-modifier=""
36
- >
37
- Default
38
- </button>
39
- <button
40
- type="button"
41
- class="mw-segmented-item"
42
- data-modifier="mw-calendar-compact"
43
- >
44
- Compact
45
- </button>
46
- </div>
47
- <div
48
- class="mw-calendar"
49
- id="calendar-month"
50
- data-calendar="month"
51
- data-calendar-locale="en-GB"
52
- >
53
- <div class="mw-calendar-header">
54
- <button
55
- type="button"
56
- class="mw-btn mw-btn-outline mw-btn-sm mw-calendar-nav"
57
- data-calendar-nav="-1"
58
- aria-label="Previous month"
59
- >
60
- <i class="fas fa-chevron-left"></i>
61
- </button>
62
-
63
- <div class="mw-calendar-title" aria-live="polite"></div>
64
-
65
- <button
66
- type="button"
67
- class="mw-btn mw-btn-outline mw-btn-sm mw-calendar-nav"
68
- data-calendar-nav="1"
69
- aria-label="Next month"
70
- >
71
- <i class="fas fa-chevron-right"></i>
72
- </button>
73
- </div>
74
-
75
- <div class="mw-calendar-grid"></div>
76
-
77
- <div class="mw-calendar-legend">
78
- <span class="mw-calendar-legend-item">
79
- <span class="mw-calendar-dot mw-calendar-dot-success"></span>
80
- Slots free
81
- </span>
82
- <span class="mw-calendar-legend-item">
83
- <span class="mw-calendar-dot mw-calendar-dot-warning"></span>
84
- Almost booked
85
- </span>
86
- <span class="mw-calendar-legend-item">
87
- <span class="mw-calendar-dot mw-calendar-dot-danger"></span>
88
- Fully booked
89
- </span>
90
- <span class="mw-calendar-legend-item">
91
- <span class="mw-calendar-dot mw-calendar-dot-info"></span>
92
- Public holiday
93
- </span>
94
- </div>
95
- </div>
96
- </div>
97
-
98
- <div class="calendar-demo">
99
- <h4 class="mw-mb-2">Week</h4>
100
- <div class="mw-segmented mw-mb-4" data-modifier-demo="calendar-week">
101
- <button
102
- type="button"
103
- class="mw-segmented-item mw-active"
104
- data-modifier=""
105
- >
106
- Default
107
- </button>
108
- <button
109
- type="button"
110
- class="mw-segmented-item"
111
- data-modifier="mw-calendar-compact"
112
- >
113
- Compact
114
- </button>
115
- </div>
116
- <div
117
- class="mw-calendar"
118
- id="calendar-week"
119
- data-calendar="week"
120
- data-calendar-locale="en-GB"
121
- >
122
- <div class="mw-calendar-header">
123
- <button
124
- type="button"
125
- class="mw-btn mw-btn-outline mw-btn-sm mw-calendar-nav"
126
- data-calendar-nav="-1"
127
- aria-label="Previous week"
128
- >
129
- <i class="fas fa-chevron-left"></i>
130
- </button>
131
-
132
- <div class="mw-calendar-title" aria-live="polite"></div>
133
-
134
- <button
135
- type="button"
136
- class="mw-btn mw-btn-outline mw-btn-sm mw-calendar-nav"
137
- data-calendar-nav="1"
138
- aria-label="Next week"
139
- >
140
- <i class="fas fa-chevron-right"></i>
141
- </button>
142
- </div>
143
-
144
- <div class="mw-calendar-grid"></div>
145
-
146
- <div class="mw-calendar-legend">
147
- <span class="mw-calendar-legend-item">
148
- <span class="mw-calendar-dot mw-calendar-dot-success"></span>
149
- Slots free
150
- </span>
151
- <span class="mw-calendar-legend-item">
152
- <span class="mw-calendar-dot mw-calendar-dot-warning"></span>
153
- Almost booked
154
- </span>
155
- <span class="mw-calendar-legend-item">
156
- <span class="mw-calendar-dot mw-calendar-dot-danger"></span>
157
- Fully booked
158
- </span>
159
- <span class="mw-calendar-legend-item">
160
- <span class="mw-calendar-dot mw-calendar-dot-info"></span>
161
- Public holiday
162
- </span>
163
- </div>
164
- </div>
165
- </div>
166
- </div>
167
-
168
- <script>
169
- // Showcase only: the demo markers hang off today, so the dots stay in view no
170
- // matter when this page is opened. A real page ships them as a literal.
171
- (function () {
172
- const markers = {};
173
-
174
- const add = (offset, tones) => {
175
- const date = new Date();
176
- date.setDate(date.getDate() + offset);
177
- const key =
178
- date.getFullYear() +
179
- '-' +
180
- String(date.getMonth() + 1).padStart(2, '0') +
181
- '-' +
182
- String(date.getDate()).padStart(2, '0');
183
- markers[key] = tones;
184
- };
185
-
186
- add(-6, ['danger']);
187
- add(-4, ['success']);
188
- add(-1, ['warning', 'info']);
189
- add(0, ['success', 'warning']);
190
- add(1, ['success']);
191
- add(2, ['info']);
192
- add(3, ['danger', 'warning', 'success']);
193
- add(5, ['secondary']);
194
- add(8, ['success']);
195
- add(11, ['warning']);
196
- add(14, ['danger']);
197
-
198
- const encoded = JSON.stringify(markers);
199
- document.querySelectorAll('[data-calendar]').forEach((calendar) => {
200
- calendar.dataset.calendarMarkers = encoded;
201
- });
202
- })();
203
- </script>