create-auto-app 0.12.0 → 0.13.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/package.json +2 -2
- package/templates/kanban-todo/narratives/homepage.narrative.ts +99 -118
- package/templates/kanban-todo/narratives/structure.narrative.ts +111 -137
- package/templates/kanban-todo/narratives/todo-list.narrative.ts +46 -45
- package/templates/questionnaires/narratives/homepage.narrative.ts +89 -147
- package/templates/questionnaires/narratives/questionnaires.narrative.ts +29 -28
- package/templates/questionnaires/narratives/structure.narrative.ts +14 -18
- package/dist/index.d.ts +0 -14
- package/dist/index.d.ts.map +0 -1
- package/dist/index.js +0 -464
- package/dist/index.js.map +0 -1
- package/dist/index.specs.d.ts +0 -2
- package/dist/index.specs.d.ts.map +0 -1
- package/dist/index.specs.js +0 -267
- package/dist/index.specs.js.map +0 -1
- package/dist/index.test.d.ts +0 -2
- package/dist/index.test.d.ts.map +0 -1
- package/dist/index.test.js +0 -187
- package/dist/index.test.js.map +0 -1
- package/templates/kanban-todo/.context/auto-ia-scheme.json +0 -414
- package/templates/kanban-todo/.context/schema.graphql +0 -60
- package/templates/kanban-todo/.context/schema.json +0 -1134
- package/templates/kanban-todo/client/.gitignore +0 -24
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "create-auto-app",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.13.0",
|
|
4
4
|
"description": "Create Auto Engineer apps with no configuration",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"bin": {
|
|
@@ -33,7 +33,7 @@
|
|
|
33
33
|
"fs-extra": "^11.2.0",
|
|
34
34
|
"inquirer": "^9.2.15",
|
|
35
35
|
"ora": "^8.0.1",
|
|
36
|
-
"@auto-engineer/id": "0.
|
|
36
|
+
"@auto-engineer/id": "0.13.0"
|
|
37
37
|
},
|
|
38
38
|
"devDependencies": {
|
|
39
39
|
"@types/fs-extra": "^11.0.4",
|
|
@@ -1,131 +1,112 @@
|
|
|
1
|
-
import { experience, narrative,
|
|
2
|
-
narrative('Todo Dashboard', '
|
|
3
|
-
experience('Kanban Board View', '
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
should('maintain consistent card spacing and grid alignment');
|
|
15
|
-
});
|
|
1
|
+
import { experience, narrative, it, describe } from '@auto-engineer/narrative';
|
|
2
|
+
narrative('Todo Dashboard', 'H6i9Rs2Gz', () => {
|
|
3
|
+
experience('Kanban Board View', 'K7j0St3Hz').client(() => {
|
|
4
|
+
it('display three distinct columns: To Do, In Progress, and Done');
|
|
5
|
+
it('show elegant column headers with gradient backgrounds');
|
|
6
|
+
it('display count badges on each column showing number of tasks');
|
|
7
|
+
it('support drag-and-drop of task cards between columns');
|
|
8
|
+
it('animate smooth transitions when tasks move between columns');
|
|
9
|
+
it('show visual feedback during drag operations with shadow elevation');
|
|
10
|
+
it('display task cards with glass morphism effect and subtle backdrop blur');
|
|
11
|
+
it('add hover effects with gentle scale and shadow transitions');
|
|
12
|
+
it('show empty state with beautiful illustrations when columns are empty');
|
|
13
|
+
it('maintain consistent card spacing and grid alignment');
|
|
16
14
|
});
|
|
17
|
-
experience('Task Cards', '
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
should('show status indicator with color-coded dot or icon');
|
|
21
|
-
should('display creation timestamp in subtle text');
|
|
22
|
-
should('show completion timestamp for completed tasks');
|
|
23
|
-
should('include quick action buttons appearing on hover');
|
|
24
|
-
should('support click to expand for future task details');
|
|
25
|
-
should('apply strike-through animation for completed tasks');
|
|
26
|
-
should('use gradient borders matching task status');
|
|
15
|
+
experience('Task Cards', 'T8k1Uu4Iz').client(() => {
|
|
16
|
+
describe('Task Card Layout', () => {
|
|
17
|
+
it('display task title with clear typography');
|
|
27
18
|
});
|
|
19
|
+
it('should display task description with clear readable typography');
|
|
20
|
+
it('show status indicator with color-coded dot or icon');
|
|
21
|
+
it('display creation timestamp in subtle text');
|
|
22
|
+
it('show completion timestamp for completed tasks');
|
|
23
|
+
it('include quick action buttons appearing on hover');
|
|
24
|
+
it('support click to expand for future task details');
|
|
25
|
+
it('apply strike-through animation for completed tasks');
|
|
26
|
+
it('use gradient borders matching task status');
|
|
28
27
|
});
|
|
29
|
-
experience('View Toggle Controls', '
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
should('remember user preference in local storage');
|
|
38
|
-
});
|
|
28
|
+
experience('View Toggle Controls', 'V3p6Zz9Nz').client(() => {
|
|
29
|
+
it('provide toggle between Kanban and List views');
|
|
30
|
+
it('use segmented control or tab-style switcher');
|
|
31
|
+
it('position in top toolbar for easy access');
|
|
32
|
+
it('highlight active view with accent color');
|
|
33
|
+
it('animate view transitions with fade and slide effects');
|
|
34
|
+
it('preserve scroll position when switching views');
|
|
35
|
+
it('remember user preference in local storage');
|
|
39
36
|
});
|
|
40
|
-
experience('Theme Toggle', '
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
should('use system preference as default');
|
|
49
|
-
});
|
|
37
|
+
experience('Theme Toggle', 'T4q7Aa0Oz').client(() => {
|
|
38
|
+
it('support light and dark theme modes');
|
|
39
|
+
it('display sun/moon icon toggle in top bar');
|
|
40
|
+
it('transition smoothly between themes with fade animation');
|
|
41
|
+
it('adjust all colors including gradients for theme');
|
|
42
|
+
it('maintain high contrast and readability in both modes');
|
|
43
|
+
it('remember user preference in local storage');
|
|
44
|
+
it('use system preference as default');
|
|
50
45
|
});
|
|
51
|
-
experience('Celebration Animations', '
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
should('respect reduced motion preferences for accessibility');
|
|
60
|
-
});
|
|
46
|
+
experience('Celebration Animations', 'C5r8Bb1Pz').client(() => {
|
|
47
|
+
it('trigger confetti animation when task is completed');
|
|
48
|
+
it('show satisfying check mark animation');
|
|
49
|
+
it('play subtle success sound effect (optional, user configurable)');
|
|
50
|
+
it('display special animation for completing all tasks');
|
|
51
|
+
it('show streak celebration for consecutive daily completions');
|
|
52
|
+
it('use particle effects that do not obstruct UI');
|
|
53
|
+
it('respect reduced motion preferences for accessibility');
|
|
61
54
|
});
|
|
62
|
-
experience('Column Management', '
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
should('maintain smooth 60fps animations during all interactions');
|
|
71
|
-
});
|
|
55
|
+
experience('Column Management', 'M6s9Cc2Qz').client(() => {
|
|
56
|
+
it('allow reordering tasks within same column via drag-and-drop');
|
|
57
|
+
it('auto-scroll columns when dragging near edges');
|
|
58
|
+
it('show drop zones with visual indicators');
|
|
59
|
+
it('prevent invalid drops with visual feedback');
|
|
60
|
+
it('support keyboard-based task movement for accessibility');
|
|
61
|
+
it('show task count updates immediately on column changes');
|
|
62
|
+
it('maintain smooth 60fps animations during all interactions');
|
|
72
63
|
});
|
|
73
|
-
experience('Empty States', '
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
should('include helpful tips for new users');
|
|
81
|
-
});
|
|
64
|
+
experience('Empty States', 'E7t0Dd3Rz').client(() => {
|
|
65
|
+
it('display welcoming illustration when no tasks exist');
|
|
66
|
+
it('show encouraging message to add first task');
|
|
67
|
+
it('provide quick-add button directly in empty state');
|
|
68
|
+
it('show column-specific empty states with relevant illustrations');
|
|
69
|
+
it('use consistent visual style matching overall design system');
|
|
70
|
+
it('include helpful tips for new users');
|
|
82
71
|
});
|
|
83
|
-
experience('Completion Progress Ring', '
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
should('position prominently at top of dashboard or sidebar');
|
|
92
|
-
});
|
|
72
|
+
experience('Completion Progress Ring', 'P9l2Vv5Jz').client(() => {
|
|
73
|
+
it('display circular progress ring with gradient stroke');
|
|
74
|
+
it('show completion percentage prominently in center');
|
|
75
|
+
it('animate progress changes with smooth easing');
|
|
76
|
+
it('display total task count below percentage');
|
|
77
|
+
it('use vibrant colors for high completion rates');
|
|
78
|
+
it('show subtle pulse animation on milestone achievements');
|
|
79
|
+
it('position prominently at top of dashboard or sidebar');
|
|
93
80
|
});
|
|
94
|
-
experience('Quick Add Todo Widget', '
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
should('show loading state during task submission');
|
|
105
|
-
});
|
|
81
|
+
experience('Quick Add Todo Widget', 'Q0m3Ww6Kz').client(() => {
|
|
82
|
+
it('display floating action button with plus icon');
|
|
83
|
+
it('position fixed in bottom-right corner for easy access');
|
|
84
|
+
it('expand into input form with smooth scale animation on click');
|
|
85
|
+
it('include elegant input field with placeholder text');
|
|
86
|
+
it('show submit button with icon when text is entered');
|
|
87
|
+
it('support keyboard shortcut (Ctrl/Cmd + K) to focus input');
|
|
88
|
+
it('auto-focus input when opened');
|
|
89
|
+
it('clear and collapse after successful task addition');
|
|
90
|
+
it('show loading state during task submission');
|
|
106
91
|
});
|
|
107
|
-
experience('Statistics Dashboard', '
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
should('animate number changes with counting effect');
|
|
117
|
-
});
|
|
92
|
+
experience('Statistics Dashboard', 'S1n4Xx7Lz').client(() => {
|
|
93
|
+
it('show total tasks count with large prominent number');
|
|
94
|
+
it('display tasks completed today with celebration icon');
|
|
95
|
+
it('show breakdown: pending, in-progress, completed counts');
|
|
96
|
+
it('display completion percentage with visual indicator');
|
|
97
|
+
it('use card-based layout with glass morphism styling');
|
|
98
|
+
it('include subtle icons for each statistic');
|
|
99
|
+
it('update in real-time when tasks change status');
|
|
100
|
+
it('animate number changes with counting effect');
|
|
118
101
|
});
|
|
119
|
-
experience('Recent Activity Feed', '
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
should('auto-scroll new completions into view with smooth animation');
|
|
129
|
-
});
|
|
102
|
+
experience('Recent Activity Feed', 'R2o5Yy8Mz').client(() => {
|
|
103
|
+
it('display recent task completions in chronological order');
|
|
104
|
+
it('show completion timestamp in relative format');
|
|
105
|
+
it('limit to last 5 completed tasks');
|
|
106
|
+
it('include task description with completed styling');
|
|
107
|
+
it('show subtle celebration icon for each completion');
|
|
108
|
+
it('use minimalist list design with dividers');
|
|
109
|
+
it('support click to view task details');
|
|
110
|
+
it('auto-scroll new completions into view with smooth animation');
|
|
130
111
|
});
|
|
131
112
|
});
|
|
@@ -1,151 +1,125 @@
|
|
|
1
|
-
import { experience, narrative,
|
|
2
|
-
narrative('App Structure', '
|
|
3
|
-
experience('Application Layout', '
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
should('apply subtle shadow to separate top bar from content');
|
|
12
|
-
});
|
|
1
|
+
import { experience, narrative, it } from '@auto-engineer/narrative';
|
|
2
|
+
narrative('App Structure', 'A8u1Ee4Sz', () => {
|
|
3
|
+
experience('Application Layout', 'L9v2Ff5Tz').client(() => {
|
|
4
|
+
it('display clean top navigation bar spanning full width');
|
|
5
|
+
it('include app logo or name on left side of top bar');
|
|
6
|
+
it('show view toggle controls in center of top bar');
|
|
7
|
+
it('display theme toggle, search, and profile menu on right side');
|
|
8
|
+
it('use gradient or glass morphism effect for top bar');
|
|
9
|
+
it('maintain top bar fixed position during scroll');
|
|
10
|
+
it('apply subtle shadow to separate top bar from content');
|
|
13
11
|
});
|
|
14
|
-
experience('Main Content Area', '
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
should('use CSS Grid for Kanban column layout');
|
|
23
|
-
});
|
|
12
|
+
experience('Main Content Area', 'C0w3Gg6Uz').client(() => {
|
|
13
|
+
it('occupy full viewport height below top bar');
|
|
14
|
+
it('apply subtle gradient or textured background');
|
|
15
|
+
it('center Kanban board with max-width container for large screens');
|
|
16
|
+
it('provide adequate padding around content on all sides');
|
|
17
|
+
it('support smooth transitions when switching between views');
|
|
18
|
+
it('maintain responsive layout for tablet and mobile devices');
|
|
19
|
+
it('use CSS Grid for Kanban column layout');
|
|
24
20
|
});
|
|
25
|
-
experience('Column Headers', '
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
should('maintain consistent height across all columns');
|
|
33
|
-
});
|
|
21
|
+
experience('Column Headers', 'H2y5Ii8Wz').client(() => {
|
|
22
|
+
it('display column title with clear typography');
|
|
23
|
+
it('show task count badge with colored background');
|
|
24
|
+
it('use gradient or accent colors per column type');
|
|
25
|
+
it('apply sticky positioning within scrollable columns');
|
|
26
|
+
it('include subtle shadow for depth');
|
|
27
|
+
it('maintain consistent height across all columns');
|
|
34
28
|
});
|
|
35
|
-
experience('Floating Action Button', '
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
should('hide on mobile when keyboard is visible');
|
|
46
|
-
});
|
|
29
|
+
experience('Floating Action Button', 'F3z6Jj9Xz').client(() => {
|
|
30
|
+
it('position fixed in bottom-right corner of viewport');
|
|
31
|
+
it('display prominent plus icon or "Add" text');
|
|
32
|
+
it('use vibrant gradient or solid accent color');
|
|
33
|
+
it('apply circular shape with consistent size');
|
|
34
|
+
it('show shadow for elevation effect');
|
|
35
|
+
it('animate subtle pulse or glow on hover');
|
|
36
|
+
it('expand into input form with smooth scale animation on click');
|
|
37
|
+
it('maintain z-index above all other content');
|
|
38
|
+
it('hide on mobile when keyboard is visible');
|
|
47
39
|
});
|
|
48
|
-
experience('Statistics Sidebar', '
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
should('support toggle to show/hide for more workspace');
|
|
58
|
-
});
|
|
40
|
+
experience('Statistics Sidebar', 'S4a7Kk0Yz').client(() => {
|
|
41
|
+
it('display on right side of screen in desktop view');
|
|
42
|
+
it('show progress ring at top of sidebar');
|
|
43
|
+
it('include statistics cards in vertical stack');
|
|
44
|
+
it('display recent activity feed below statistics');
|
|
45
|
+
it('apply glass morphism or card-based design');
|
|
46
|
+
it('collapse into expandable panel on tablet devices');
|
|
47
|
+
it('move to bottom sheet on mobile devices');
|
|
48
|
+
it('support toggle to show/hide for more workspace');
|
|
59
49
|
});
|
|
60
|
-
experience('Task Detail Panel', '
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
should('trap focus within panel when open for accessibility');
|
|
70
|
-
});
|
|
50
|
+
experience('Task Detail Panel', 'D5b8Ll1Zz').client(() => {
|
|
51
|
+
it('slide in from right side when task is clicked');
|
|
52
|
+
it('overlay main content with backdrop blur on mobile');
|
|
53
|
+
it('show full task information with edit capabilities');
|
|
54
|
+
it('include close button in top-right corner');
|
|
55
|
+
it('support swipe gesture to close on touch devices');
|
|
56
|
+
it('maintain consistent width on desktop');
|
|
57
|
+
it('animate slide-in/out with smooth easing');
|
|
58
|
+
it('trap focus within panel when open for accessibility');
|
|
71
59
|
});
|
|
72
|
-
experience('Search Overlay', '
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
should('focus input automatically when opened');
|
|
82
|
-
});
|
|
60
|
+
experience('Search Overlay', 'S6c9Mm2Az').client(() => {
|
|
61
|
+
it('trigger with keyboard shortcut Cmd/Ctrl + K');
|
|
62
|
+
it('display centered modal overlay with backdrop blur');
|
|
63
|
+
it('show search input with large font size');
|
|
64
|
+
it('include recent searches or suggestions below input');
|
|
65
|
+
it('filter and display matching tasks in real-time');
|
|
66
|
+
it('support keyboard navigation through results');
|
|
67
|
+
it('close on Escape key or clicking backdrop');
|
|
68
|
+
it('focus input automatically when opened');
|
|
83
69
|
});
|
|
84
|
-
experience('Mobile Navigation', '
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
should('apply safe area insets for notched devices');
|
|
93
|
-
});
|
|
70
|
+
experience('Mobile Navigation', 'M7d0Nn3Bz').client(() => {
|
|
71
|
+
it('collapse top bar controls into hamburger menu on small screens');
|
|
72
|
+
it('show essential actions as bottom tab bar on mobile');
|
|
73
|
+
it('include tabs for: Kanban, Statistics, Add, Settings');
|
|
74
|
+
it('highlight active tab with accent color');
|
|
75
|
+
it('use icons for tabs with optional labels');
|
|
76
|
+
it('maintain fixed position at bottom of viewport');
|
|
77
|
+
it('apply safe area insets for notched devices');
|
|
94
78
|
});
|
|
95
|
-
experience('Responsive Breakpoints', '
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
should('test on common device dimensions for consistency');
|
|
104
|
-
});
|
|
79
|
+
experience('Responsive Breakpoints', 'R8e1Oo4Cz').client(() => {
|
|
80
|
+
it('support desktop layout for screens 1024px and wider');
|
|
81
|
+
it('adapt to tablet layout for screens 768px to 1023px');
|
|
82
|
+
it('optimize for mobile devices below 768px');
|
|
83
|
+
it('stack Kanban columns vertically on screens below 640px');
|
|
84
|
+
it('adjust font sizes and spacing for each breakpoint');
|
|
85
|
+
it('maintain touch-friendly tap targets on all devices');
|
|
86
|
+
it('test on common device dimensions for consistency');
|
|
105
87
|
});
|
|
106
|
-
experience('Loading States', '
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
should('provide timeout fallback with retry option');
|
|
115
|
-
});
|
|
88
|
+
experience('Loading States', 'L9f2Pp5Dz').client(() => {
|
|
89
|
+
it('show skeleton loaders for initial page load');
|
|
90
|
+
it('display shimmer effect on loading cards');
|
|
91
|
+
it('include spinner for async operations');
|
|
92
|
+
it('maintain layout stability during loading');
|
|
93
|
+
it('show optimistic UI updates for immediate feedback');
|
|
94
|
+
it('handle slow network conditions gracefully');
|
|
95
|
+
it('provide timeout fallback with retry option');
|
|
116
96
|
});
|
|
117
|
-
experience('Error States', '
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
should('support error boundary for graceful failure recovery');
|
|
126
|
-
});
|
|
97
|
+
experience('Error States', 'E0g3Qq6Ez').client(() => {
|
|
98
|
+
it('display inline error messages near relevant fields');
|
|
99
|
+
it('show toast notifications for global errors');
|
|
100
|
+
it('include helpful error messages with suggested actions');
|
|
101
|
+
it('use consistent error styling with red accent color');
|
|
102
|
+
it('provide retry buttons for failed operations');
|
|
103
|
+
it('log errors to console for debugging');
|
|
104
|
+
it('support error boundary for graceful failure recovery');
|
|
127
105
|
});
|
|
128
|
-
experience('Accessibility Features', '
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
should('provide alt text for all decorative images and icons');
|
|
138
|
-
});
|
|
106
|
+
experience('Accessibility Features', 'A1h4Rr7Fz').client(() => {
|
|
107
|
+
it('support full keyboard navigation throughout app');
|
|
108
|
+
it('provide ARIA labels for all interactive elements');
|
|
109
|
+
it('include skip links for main content areas');
|
|
110
|
+
it('maintain focus indicators with high contrast');
|
|
111
|
+
it('support screen reader announcements for dynamic changes');
|
|
112
|
+
it('respect prefers-reduced-motion for animations');
|
|
113
|
+
it('ensure color contrast meets WCAG AA standards');
|
|
114
|
+
it('provide alt text for all decorative images and icons');
|
|
139
115
|
});
|
|
140
|
-
experience('Kanban Board Container', '
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
should('show subtle scrollbar styling matching theme');
|
|
149
|
-
});
|
|
116
|
+
experience('Kanban Board Container', 'K1x4Hh7Vz').client(() => {
|
|
117
|
+
it('display three equal-width columns in desktop view');
|
|
118
|
+
it('apply consistent gap spacing between columns');
|
|
119
|
+
it('stack columns vertically on mobile devices');
|
|
120
|
+
it('support horizontal scrolling on smaller screens if needed');
|
|
121
|
+
it('maintain minimum column width for readability');
|
|
122
|
+
it('apply max-height with scroll for columns with many tasks');
|
|
123
|
+
it('show subtle scrollbar styling matching theme');
|
|
150
124
|
});
|
|
151
125
|
});
|