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/AI_DESIGN_SYSTEM_REFERENCE.md +20 -3454
- package/CLAUDE.md +41 -0
- package/Dockerfile +4 -8
- package/README.md +1 -5
- package/ai-reference/00-index.md +54 -0
- package/ai-reference/01-setup-colors-typography.md +164 -0
- package/ai-reference/02-layout-patterns.md +253 -0
- package/ai-reference/03-buttons.md +106 -0
- package/ai-reference/04-cards.md +104 -0
- package/ai-reference/05-forms.md +414 -0
- package/ai-reference/06-overlays.md +119 -0
- package/ai-reference/07-feedback.md +147 -0
- package/ai-reference/08-data-display.md +106 -0
- package/ai-reference/09-lists-splitview.md +233 -0
- package/ai-reference/10-chat-charts-status.md +311 -0
- package/ai-reference/11-agenticqa.md +538 -0
- package/ai-reference/12-dark-mode.md +111 -0
- package/ai-reference/13-best-practices.md +73 -0
- package/package.json +1 -1
- package/src/assets/scripts/modules/colors.js +28 -2
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:
|
|
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
|
|
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
|
-
[](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
|
+
```
|