testio-tailwind 3.27.2 → 3.27.4

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/CLAUDE.md ADDED
@@ -0,0 +1,41 @@
1
+ # testio-tailwind
2
+
3
+ Tailwind CSS 4.x design system for the Test IO platform. Publishes as the `testio-tailwind` npm package consumed by other apps.
4
+
5
+ ## Dev Server
6
+
7
+ ```bash
8
+ npm start
9
+ # http://localhost:8080/
10
+ ```
11
+
12
+ Component pages live under `src/pages/` and are served at matching URL paths (e.g., `src/pages/buttons/buttons.haml` → `http://localhost:8080/buttons/`). Templates use HAML.
13
+
14
+ ## Build
15
+
16
+ ```bash
17
+ npm run build # compiles CSS + JS to dist/
18
+ ```
19
+
20
+ ## AI Design System Reference
21
+
22
+ **Start here:** [AI_DESIGN_SYSTEM_REFERENCE.md](AI_DESIGN_SYSTEM_REFERENCE.md) — lightweight index pointing to topic files.
23
+
24
+ **Topic files** (load only what you need):
25
+
26
+ | File | Topics |
27
+ |---|---|
28
+ | [ai-reference/00-index.md](ai-reference/00-index.md) | Full index with load guidance |
29
+ | [ai-reference/01-setup-colors-typography.md](ai-reference/01-setup-colors-typography.md) | Colors, typography, spacing, breakpoints |
30
+ | [ai-reference/02-layout-patterns.md](ai-reference/02-layout-patterns.md) | Layouts, page header, navigation |
31
+ | [ai-reference/03-buttons.md](ai-reference/03-buttons.md) | Buttons |
32
+ | [ai-reference/04-cards.md](ai-reference/04-cards.md) | Cards |
33
+ | [ai-reference/05-forms.md](ai-reference/05-forms.md) | All form components |
34
+ | [ai-reference/06-overlays.md](ai-reference/06-overlays.md) | Modals & drawers |
35
+ | [ai-reference/07-feedback.md](ai-reference/07-feedback.md) | Alerts, notifications, empty states |
36
+ | [ai-reference/08-data-display.md](ai-reference/08-data-display.md) | Tables |
37
+ | [ai-reference/09-lists-splitview.md](ai-reference/09-lists-splitview.md) | Lists & splitview |
38
+ | [ai-reference/10-chat-charts-status.md](ai-reference/10-chat-charts-status.md) | Chat, charts, status stepper, utility components |
39
+ | [ai-reference/11-agenticqa.md](ai-reference/11-agenticqa.md) | AgenticQA platform components |
40
+ | [ai-reference/12-dark-mode.md](ai-reference/12-dark-mode.md) | Dark mode |
41
+ | [ai-reference/13-best-practices.md](ai-reference/13-best-practices.md) | Best practices & version info |
package/Dockerfile CHANGED
@@ -1,4 +1,4 @@
1
- FROM europe-west3-docker.pkg.dev/oi-tset/hub/node:18-alpine
1
+ FROM europe-west3-docker.pkg.dev/oi-tset/hub/node:20-alpine
2
2
 
3
3
  ARG APP_UID=5123
4
4
  ARG USER=appuser
@@ -10,15 +10,11 @@ USER ${USER}
10
10
 
11
11
  WORKDIR /home/${USER}/app
12
12
 
13
- COPY --chown=${USER}:${GROUP} package*.json ./
14
-
15
- RUN mkdir -p /home/${USER}/app/node_modules && \
16
- npm install && \
17
- npm install http-server
18
-
19
13
  COPY --chown=${USER}:${GROUP} . ./
20
14
 
21
- RUN npm run build
15
+ RUN npm ci && \
16
+ npm install http-server && \
17
+ npm run build
22
18
 
23
19
  EXPOSE 8080
24
20
 
package/README.md CHANGED
@@ -1,9 +1,5 @@
1
1
  # Test IO TailWind Design System
2
2
 
3
- [![CircleCI](https://dl.circleci.com/status-badge/img/gh/test-IO/testio-tailwind/tree/main.svg?style=svg)](https://dl.circleci.com/status-badge/redirect/gh/test-IO/testio-tailwind/tree/main)
4
-
5
- --- (Live deployment)
6
-
7
3
 
8
4
  ## Development
9
5
 
@@ -48,4 +44,4 @@ npm run build
48
44
  ### Integration of the design system into your app
49
45
 
50
46
  1. Import `app.css` to get all relevant modules and files.
51
- 2. Run TailWindCSS V4 to compile everything.
47
+ 2. Run TailWindCSS V4 to compile everything.
@@ -0,0 +1,54 @@
1
+ # Test IO Tailwind Design System — AI Reference Index
2
+
3
+ **Version:** 3.23.0 | **Framework:** Tailwind CSS 4.x | **Package:** `testio-tailwind`
4
+
5
+ This index is the entry point. Load only the topic files you actually need — each file is self-contained.
6
+
7
+ ---
8
+
9
+ ## How to Use This Reference
10
+
11
+ Load the specific file(s) relevant to your task. Do not load all files at once.
12
+
13
+ | File | Topics | When to Load |
14
+ |---|---|---|
15
+ | [01-setup-colors-typography.md](01-setup-colors-typography.md) | Installation, CSS/JS imports, color palette, semantic colors, typography scale, spacing, breakpoints | Starting a new project, setting up imports, choosing colors or fonts |
16
+ | [02-layout-patterns.md](02-layout-patterns.md) | Full-width layout, centered layout, page header, navigation (header, sidebar, tabs) | Building page structure, choosing layout type, adding navigation |
17
+ | [03-buttons.md](03-buttons.md) | All button variants, sizes, shapes, icons, inverted, dropdown, groups | Adding any button or interactive control |
18
+ | [04-cards.md](04-cards.md) | Card structure, sizes, variants (highlight, icon, image), card layouts (grid, list) | Displaying content in cards |
19
+ | [05-forms.md](05-forms.md) | Inputs, labels, hints, grid, checkboxes, radios, toggles, selects, date picker, tokens, addons, form cards | Any form or input component |
20
+ | [06-overlays.md](06-overlays.md) | Modal (basic, sizes, disabled-close), Drawer (basic, close btn, filter) | Overlays, modals, side drawers |
21
+ | [07-feedback.md](07-feedback.md) | Alerts, notifications, progress bars, loading spinner, empty states | User feedback, status messages, loading states |
22
+ | [08-data-display.md](08-data-display.md) | Tables (basic, variants, cell-style, cell utilities, interactive rows) | Data tables |
23
+ | [09-lists-splitview.md](09-lists-splitview.md) | List items (basic, variants, collapsable, nested, selectable), splitview two-pane layout | List views, master-detail layouts |
24
+ | [10-chat-charts-status.md](10-chat-charts-status.md) | Chat messages/window, ECharts integration, status stepper, tags, badges, pagination, popovers, icons | Chat UI, charts, status indicators, utility components |
25
+ | [11-agenticqa.md](11-agenticqa.md) | AgenticQA-specific: page header, chat, status stepper, splitview, list items, grid/form tables, header nav, layout | Building AgenticQA platform pages |
26
+ | [12-dark-mode.md](12-dark-mode.md) | Dark mode setup, color palette, CSS variables, differences from light mode | Dark mode implementation |
27
+ | [13-best-practices.md](13-best-practices.md) | AI agent guidelines, layout selection, accessibility, version info | General guidance and best practices |
28
+
29
+ ---
30
+
31
+ ## Quick Reference
32
+
33
+ ### Installation
34
+ ```bash
35
+ npm install testio-tailwind
36
+ ```
37
+ ```css
38
+ @import 'testio-tailwind/dist/static/app.compiled.css';
39
+ ```
40
+ ```javascript
41
+ import 'testio-tailwind/dist/static/app.bundled.js';
42
+ ```
43
+
44
+ ### Key Semantic Colors
45
+ ```
46
+ bg-primary bg-success bg-danger bg-info
47
+ bg-blocked bg-pending bg-appbody bg-card
48
+ bg-header bg-actionbar border-bordercolor
49
+ ```
50
+
51
+ ### Dev Server
52
+ ```bash
53
+ npm start → http://localhost:8080/
54
+ ```
@@ -0,0 +1,164 @@
1
+ # Setup, Colors & Typography
2
+
3
+ **Package:** `testio-tailwind` | **Version:** 3.23.0 | **Framework:** Tailwind CSS 4.x
4
+
5
+ ---
6
+
7
+ ## Installation & Setup
8
+
9
+ ### NPM Installation
10
+ ```bash
11
+ npm install testio-tailwind
12
+ ```
13
+
14
+ ### CSS Import
15
+ ```css
16
+ @import 'testio-tailwind/dist/static/app.compiled.css';
17
+ ```
18
+
19
+ ### JavaScript Import
20
+ ```javascript
21
+ import 'testio-tailwind/dist/static/app.bundled.js';
22
+ ```
23
+
24
+ ---
25
+
26
+ ## Component Library Structure
27
+
28
+ ```
29
+ src/pages/
30
+ ├── agenticqa/ # AgenticQA-specific components
31
+ ├── buttons/ # Button components and variants
32
+ ├── charts/ # ECharts data visualization
33
+ ├── components/ # UI components
34
+ ├── forms/ # Form components
35
+ ├── layout/ # Layout utilities
36
+ ├── layouts/ # Full layout examples
37
+ ├── navigation/ # Navigation components
38
+ ├── tables/ # Table components
39
+ └── typography/ # Typography examples
40
+ ```
41
+
42
+ Dev server: `npm start` → `http://localhost:8080/`
43
+
44
+ ---
45
+
46
+ ## Color System
47
+
48
+ ### Semantic Colors
49
+ ```html
50
+ <div class="bg-primary text-white">Primary action</div>
51
+ <div class="bg-link text-white">Link color</div>
52
+ <div class="bg-success text-white">Success state</div>
53
+ <div class="bg-danger text-white">Error/danger state</div>
54
+ <div class="bg-info text-white">Information</div>
55
+ <div class="bg-blocked text-white">Warning/blocked</div>
56
+ <div class="bg-pending text-gray-darker">Pending state</div>
57
+ <div class="bg-appbody text-appbody-textcolor">App background</div>
58
+ <div class="bg-card">Card background</div>
59
+ <div class="bg-header text-white">Header background</div>
60
+ <div class="bg-listitem">List item background</div>
61
+ <div class="bg-actionbar">Action bar (dark)</div>
62
+ <div class="border-bordercolor">Standard border</div>
63
+ ```
64
+
65
+ ### Color Palette
66
+
67
+ **Grays:** `gray-100` through `gray-900`, plus `gray-lightest`, `gray-lighter`, `gray-light`, `gray-dark`, `gray-darker`, `gray-darkest`
68
+
69
+ **Brand Colors:**
70
+ - **Primary (Petrol):** `petrol` (#236a84 light, #78eac1 dark)
71
+ - **Success:** `green` (#8cbd24 light, #33BA9E dark)
72
+ - **Danger/Critical:** `red` (#ec0404 light, #FF3131 dark)
73
+ - **Warning:** `orange` (#f48d21)
74
+ - **Info:** `blue` (#326dd1)
75
+ - **Accent Colors:** `teal`, `purple`, `pink`, `yellow`
76
+
77
+ **Priority Levels:**
78
+ - `critical` - Red (#FF3131)
79
+ - `high` - Yellow (#d8ce0d)
80
+ - `low` - Gray (#9fa2a8)
81
+
82
+ **Issue Types:**
83
+ - `visual` - Orange (#f48d21)
84
+ - `content` - Blue (#326dd1)
85
+ - `usability` - Petrol dark (#263340)
86
+
87
+ ---
88
+
89
+ ## Typography
90
+
91
+ ### Font Families
92
+ - **Body/Sans:** `font-sans` - Source Sans 3
93
+ - **Monospace:** `font-mono` - Source Code Pro
94
+
95
+ ### Headings
96
+ ```html
97
+ <h1 class="text-heading-1 font-light">Main Title (2.25rem)</h1>
98
+ <h2 class="text-heading-2 font-light">Section Title (1.875rem)</h2>
99
+ <h3 class="text-heading-3 font-light">Subsection (1.563rem)</h3>
100
+ <h4 class="text-heading-4 font-light">Sub-heading (1.375rem)</h4>
101
+ <h5 class="text-heading-5 font-light">Minor heading (1.125rem)</h5>
102
+ <h6 class="text-heading-6 font-light">Smallest heading (1rem)</h6>
103
+ ```
104
+
105
+ ### Display Text
106
+ ```html
107
+ <h1 class="text-display-1 font-extralight">Hero Text (3.25rem)</h1>
108
+ <h2 class="text-display-2 font-extralight">Large Display (3rem)</h2>
109
+ <h3 class="text-display-3 font-extralight">Medium Display (2.75rem)</h3>
110
+ <h4 class="text-display-4 font-extralight">Small Display (2.5rem)</h4>
111
+ ```
112
+
113
+ ### Body Text Sizes
114
+ ```html
115
+ <p class="text-base">Base text (0.875rem - default)</p>
116
+ <p class="text-lg">Large text (1.25rem)</p>
117
+ <p class="text-sm">Small text (0.813rem)</p>
118
+ <p class="text-xs">Extra small (0.6875rem)</p>
119
+ <p class="text-xxs">Tiny text (0.625rem)</p>
120
+ ```
121
+
122
+ ### Labels & Special Text
123
+ ```html
124
+ <label class="text-label">Form Label (0.8125rem, 0.75rem in dark)</label>
125
+ <label class="text-label-sm">Small Label (0.75rem)</label>
126
+ <h3 class="text-card-header">Card Header (1.125rem in dark)</h3>
127
+ ```
128
+
129
+ ---
130
+
131
+ ## Spacing & Layout
132
+
133
+ ### Spacing Scale
134
+ - `xxs` - 0.3125rem (5px)
135
+ - `xs` - 0.625rem (10px)
136
+ - `sm` - 0.9375rem (15px)
137
+ - `md` - 1.25rem (20px)
138
+ - `spacing` - 1.875rem (30px) — **base unit**
139
+ - `lg` - 3.125rem (50px)
140
+ - `xl` - 3.75rem (60px)
141
+ - `xxl` - 5.625rem (90px)
142
+
143
+ ### Common Spacing Patterns
144
+ ```html
145
+ <div class="p-md">Standard padding (20px)</div>
146
+ <div class="p-card-padding">Card padding (30px)</div>
147
+ <div class="px-md py-sm">Mixed padding</div>
148
+ <div class="mb-spacing">Standard margin bottom (30px)</div>
149
+ <div class="mt-xxs">Tiny margin top (5px)</div>
150
+ <div class="mb-heading">Bottom margin for headings</div>
151
+ <div class="flex gap-xs">Flex with 10px gap</div>
152
+ <div class="grid gap-grid-gutter">Grid with gutter (20px light, 40px dark)</div>
153
+ ```
154
+
155
+ ### Breakpoints
156
+ ```
157
+ xs: 30rem (480px)
158
+ sm: 640px
159
+ md: 768px
160
+ lg: 70rem (1120px)
161
+ xl: 90rem (1440px)
162
+ 2xl: 100rem (1600px)
163
+ 3xl: 1930px
164
+ ```
@@ -0,0 +1,253 @@
1
+ # Layout Patterns & Navigation
2
+
3
+ ---
4
+
5
+ ## Layout Patterns
6
+
7
+ ### Standard Application Layout Structure
8
+ ```html
9
+ <body class="app-body">
10
+ <header class="header">
11
+ <!-- Navigation and branding -->
12
+ </header>
13
+ <main class="main-content">
14
+ <!-- Page content -->
15
+ </main>
16
+ <footer class="actionbar">
17
+ <!-- Actions and controls -->
18
+ </footer>
19
+ </body>
20
+ ```
21
+
22
+ ### Full-Width Layout
23
+ Standard layout with content spanning the full width of the viewport.
24
+
25
+ ```html
26
+ <body class="app-body">
27
+ <header class="header"></header>
28
+ <main class="main-content">
29
+ <div class="page-content">
30
+ <!-- Content fills available space -->
31
+ </div>
32
+ </main>
33
+ <footer class="actionbar"></footer>
34
+ </body>
35
+ ```
36
+
37
+ **Use Case:** Dashboard layouts, full-width data displays, responsive mobile views.
38
+
39
+ ### Centered Layout
40
+ Centered layout with max-width constraints for optimal readability on widescreen screens.
41
+
42
+ ```html
43
+ <body class="app-body">
44
+ <header class="header"></header>
45
+ <main class="main-content centered">
46
+ <div class="centered-content">
47
+ <!-- Content centered with max-width -->
48
+ </div>
49
+ </main>
50
+ <footer class="actionbar centered"></footer>
51
+ </body>
52
+ ```
53
+
54
+ **Key Classes:**
55
+ - `.main-content.centered` - Centers the main content
56
+ - `.centered-content` - Wrapper with max-width constraint
57
+ - `.actionbar.centered` - Centered variant of action bar
58
+ - `.max-w-capped` - Standard max-width for centered content (~800px)
59
+
60
+ **Use Case:** Documentation pages, information displays, form submissions.
61
+
62
+ **Example Centered Actionbar:**
63
+ ```html
64
+ <footer class="actionbar centered">
65
+ <div class="flex justify-center gap-md">
66
+ <button class="btn btn-secondary">Cancel</button>
67
+ <button class="btn btn-primary">Submit</button>
68
+ </div>
69
+ </footer>
70
+ ```
71
+
72
+ ---
73
+
74
+ ## Page Layout Components
75
+
76
+ ### Basic Page Header
77
+ A responsive grid layout component for dashboard and session management pages.
78
+
79
+ ```html
80
+ <div class="page-header">
81
+ <div class="card page-maincard p-card-padding">
82
+ <h1 class="text-card-header">Session Details</h1>
83
+ <h2 class="page-session-title">Test Session Title</h2>
84
+
85
+ <dl class="page-meta-info">
86
+ <dt class="label">Created on:</dt>
87
+ <dd>2025-10-21 10:45 AM</dd>
88
+ <dt class="label">Last test:</dt>
89
+ <dd>2025-10-21 11:30 AM</dd>
90
+ <dt class="label">ID:</dt>
91
+ <dd>321456987</dd>
92
+ <dt class="label">URL:</dt>
93
+ <dd class="row-testsuite">
94
+ <a href="#" class="label">Test Suite Name</a>
95
+ </dd>
96
+ <dt class="label">Status:</dt>
97
+ <dd class="text-white">Active</dd>
98
+ </dl>
99
+ </div>
100
+
101
+ <div class="page-actions">
102
+ <a href="#" class="btn btn-primary btn-main">
103
+ <span class="icon icon-test-running-xl"></span>
104
+ Start Test
105
+ </a>
106
+ </div>
107
+ </div>
108
+ ```
109
+
110
+ ### Page Header with Chart
111
+ ```html
112
+ <div class="page-header with-chart">
113
+ <div class="card page-maincard p-card-padding">
114
+ <!-- Main card content -->
115
+ </div>
116
+ <div class="page-chart card p-card-padding">
117
+ <div class="echarts-container" id="chart"></div>
118
+ </div>
119
+ <div class="page-actions">
120
+ <a href="#" class="btn btn-primary btn-main">
121
+ <span class="icon icon-review-xl"></span>
122
+ Show Report
123
+ </a>
124
+ <a href="#" class="btn btn-secondary">Re-run All Checks</a>
125
+ </div>
126
+ </div>
127
+ ```
128
+
129
+ ### Page Header with Forms
130
+ ```html
131
+ <div class="page-header">
132
+ <div class="card page-maincard p-card-padding">
133
+ <div class="form-grid">
134
+ <div class="form-group">
135
+ <label class="form-label">Test Name</label>
136
+ <input type="text" class="form-control" placeholder="Enter test name">
137
+ </div>
138
+ <div class="form-group">
139
+ <label class="form-label">URL for Testing</label>
140
+ <input type="url" class="form-control" placeholder="https://example.com">
141
+ </div>
142
+ </div>
143
+ </div>
144
+ <div class="page-actions">
145
+ <a href="#" class="btn btn-primary btn-xl">
146
+ <span class="icon icon-test-running-xl"></span>
147
+ Save and Run Test
148
+ </a>
149
+ <a href="#" class="btn btn-secondary">Save Draft</a>
150
+ <a href="#" class="btn btn-secondary">Cancel</a>
151
+ </div>
152
+ </div>
153
+ ```
154
+
155
+ **Key Classes:**
156
+ - `.page-header` - Main grid container with responsive columns
157
+ - `.page-maincard` - Primary content card (spans 2-4 columns by screen size)
158
+ - `.page-actions` - Action buttons column
159
+ - `.page-session-title` - Session/test title with bottom margin
160
+ - `.page-meta-info` - Metadata grid (2 cols mobile, 6 cols xl)
161
+ - `.row-testsuite` - Special metadata row (spans 5 cols on xl)
162
+ - `.with-chart` - Modifier for including chart column
163
+ - `.btn-main` - Primary action button that grows to fill available space
164
+
165
+ ---
166
+
167
+ ## Navigation Components
168
+
169
+ ### Header Navigation
170
+ ```html
171
+ <header class="header">
172
+ <div class="header-logo">
173
+ <img src="logo.svg" alt="Logo">
174
+ </div>
175
+ <nav class="header-nav">
176
+ <a href="#" class="nav-link">Dashboard</a>
177
+ <a href="#" class="nav-link active">Projects</a>
178
+ <a href="#" class="nav-link">Settings</a>
179
+ </nav>
180
+ <div class="header-actions">
181
+ <button class="btn btn-sm btn-primary">New Project</button>
182
+ </div>
183
+ </header>
184
+ ```
185
+
186
+ ### Sidebar Navigation
187
+ ```html
188
+ <aside class="sidebar">
189
+ <nav class="sidebar-nav">
190
+ <a href="#" class="sidebar-link active">
191
+ <i class="icon icon-home"></i>
192
+ Dashboard
193
+ </a>
194
+ <a href="#" class="sidebar-link">
195
+ <i class="icon icon-folder"></i>
196
+ Projects
197
+ </a>
198
+ <a href="#" class="sidebar-link">
199
+ <i class="icon icon-settings"></i>
200
+ Settings
201
+ </a>
202
+ </nav>
203
+ </aside>
204
+ ```
205
+
206
+ ### Tab Navigation
207
+ ```html
208
+ <nav class="nav-tabs">
209
+ <div class="navlink active" href="">Navlink active</div>
210
+ <div class="navlink" href="">Navlink</div>
211
+ <div class="navlink" href="">
212
+ Counter
213
+ <div class="counter">99</div>
214
+ </div>
215
+ <div class="navlink disabled" href="">Disabled</div>
216
+ </nav>
217
+ ```
218
+
219
+ ### Tab Navigation Variants
220
+ ```html
221
+ <!-- Pills style -->
222
+ <nav class="nav-tabs pills">...</nav>
223
+
224
+ <!-- Small tabs -->
225
+ <nav class="nav-tabs sm">...</nav>
226
+
227
+ <!-- Tabs with actions -->
228
+ <nav class="nav-tabs with-actions">
229
+ <div class="navlink active">Tab 1</div>
230
+ <div class="navlink">Tab 2</div>
231
+ <div class="tab-actions">
232
+ <button class="btn btn-sm btn-primary">Action</button>
233
+ </div>
234
+ </nav>
235
+ ```
236
+
237
+ ### Radio Tabs
238
+ ```html
239
+ <div class="radio-tabs">
240
+ <input type="radio" id="tab1" name="tabs" checked>
241
+ <label for="tab1">Tab 1</label>
242
+ <input type="radio" id="tab2" name="tabs">
243
+ <label for="tab2">Tab 2</label>
244
+ </div>
245
+ ```
246
+
247
+ ### Product-Specific Headers
248
+ ```html
249
+ <header class="header customer_header">...</header>
250
+ <header class="header tester_header">...</header>
251
+ <header class="header manager_header">...</header>
252
+ <header class="header agenticqa_header">...</header>
253
+ ```
@@ -0,0 +1,106 @@
1
+ # Button Components
2
+
3
+ ---
4
+
5
+ ## Basic Buttons
6
+ ```html
7
+ <button class="btn btn-primary">Primary Action</button>
8
+ <button class="btn btn-secondary">Secondary Action</button>
9
+ <button class="btn btn-ghost">Ghost Action</button>
10
+ <button class="btn btn-link">Link Style</button>
11
+ <button class="btn btn-dashed">Add New</button>
12
+ ```
13
+
14
+ ## Semantic Button Variants
15
+ ```html
16
+ <button class="btn btn-success">Success Action</button>
17
+ <button class="btn btn-danger">Delete/Danger</button>
18
+ <button class="btn btn-warning">Warning Action</button>
19
+ <button class="btn btn-info">Info Action</button>
20
+ ```
21
+
22
+ ## Button Sizes
23
+ ```html
24
+ <button class="btn btn-sm btn-primary">Small</button>
25
+ <button class="btn btn-primary">Default (h-btn = 2.5rem/40px)</button>
26
+ <button class="btn btn-lg btn-primary">
27
+ <i class="icon icon-star"></i>
28
+ </button>
29
+ <button class="btn btn-xl btn-primary">
30
+ <i class="icon icon-upload"></i>
31
+ Upload
32
+ </button>
33
+ ```
34
+
35
+ ## Button Shapes
36
+ ```html
37
+ <button class="btn btn-square btn-primary">
38
+ <i class="icon icon-search"></i>
39
+ </button>
40
+ <button class="btn btn-circle btn-primary">
41
+ <i class="icon icon-add"></i>
42
+ </button>
43
+ <button class="btn btn-block btn-primary">Full Width</button>
44
+ ```
45
+
46
+ ## Inverted Buttons (for dark backgrounds)
47
+ ```html
48
+ <div class="bg-actionbar p-md">
49
+ <button class="btn btn-primary-inverted">Primary Inverted</button>
50
+ <button class="btn btn-inverted">Inverted</button>
51
+ <button class="btn btn-secondary-inverted">Secondary Inverted</button>
52
+ <button class="btn btn-outline-primary-inverted">Outline Primary Inverted</button>
53
+ <button class="btn btn-ghost-inverted">Ghost Inverted</button>
54
+ </div>
55
+ ```
56
+
57
+ ## Buttons with Icons
58
+ ```html
59
+ <button class="btn btn-primary">
60
+ <i class="icon icon-save mr-icon-spacing"></i>
61
+ Save Changes
62
+ </button>
63
+
64
+ <button class="btn btn-secondary">
65
+ <i class="icon icon-download mr-icon-spacing"></i>
66
+ Download
67
+ </button>
68
+ ```
69
+
70
+ ## Dropdown Menu Button
71
+ ```html
72
+ <details class="dropdown-actions">
73
+ <summary>
74
+ <div class="btn btn-square btn-primary">
75
+ <span class="icon icon-more"></span>
76
+ </div>
77
+ </summary>
78
+ <div class="popover-menu">
79
+ <a class="popover-action" href="#">
80
+ <span class="icon icon-pencil"></span>
81
+ Edit
82
+ </a>
83
+ <a class="popover-action" href="#">
84
+ <span class="icon icon-duplicate"></span>
85
+ Duplicate
86
+ </a>
87
+ <a class="popover-action" href="#">
88
+ <span class="icon icon-remove"></span>
89
+ Delete
90
+ </a>
91
+ </div>
92
+ </details>
93
+
94
+ <!-- Direction variants -->
95
+ <details class="dropdown-actions dropright"><!-- Opens to right --></details>
96
+ <details class="dropdown-actions dropup dropright"><!-- Opens up and right --></details>
97
+ ```
98
+
99
+ ## Button Groups
100
+ ```html
101
+ <div class="btn-group">
102
+ <button class="btn btn-primary">Left</button>
103
+ <button class="btn btn-primary">Center</button>
104
+ <button class="btn btn-primary">Right</button>
105
+ </div>
106
+ ```