create-flowmo 1.0.0 → 1.1.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 +1 -1
- package/skills/outsystems-ui/SKILL.md +139 -20
- package/skills/outsystems-ui/assets/layout-base.html +108 -0
- package/skills/outsystems-ui/assets/layout-blank.html +30 -0
- package/skills/outsystems-ui/assets/layout-side.html +117 -0
- package/skills/outsystems-ui/assets/layout-template.html +53 -30
- package/skills/outsystems-ui/assets/layout-top.html +100 -0
- package/skills/outsystems-ui/references/screen-templates.md +259 -33
- package/skills/outsystems-ui/references/ui-patterns.md +1253 -0
- package/template/screens/home.visual.html +55 -20
- package/skills/outsystems-ui/references/patterns-adaptive.md +0 -178
- package/skills/outsystems-ui/references/patterns-content.md +0 -242
- package/skills/outsystems-ui/references/patterns-interaction.md +0 -288
- package/skills/outsystems-ui/references/patterns-navigation.md +0 -180
- package/skills/outsystems-ui/references/patterns-numbers.md +0 -94
- package/skills/outsystems-ui/references/patterns-utilities.md +0 -124
- package/skills/outsystems-ui/references/widgets.md +0 -270
|
@@ -1,288 +0,0 @@
|
|
|
1
|
-
# OutSystems UI — Interaction Patterns (18)
|
|
2
|
-
|
|
3
|
-
Patterns for user interaction: inputs, selections, animations, and dynamic content.
|
|
4
|
-
|
|
5
|
-
## Action Sheet
|
|
6
|
-
|
|
7
|
-
Bottom-sliding panel with action options (mobile pattern).
|
|
8
|
-
|
|
9
|
-
```html
|
|
10
|
-
<div class="osui-action-sheet">
|
|
11
|
-
<div class="osui-action-sheet__header">{{title}}</div>
|
|
12
|
-
<div class="osui-action-sheet__content">
|
|
13
|
-
<div class="osui-action-sheet__item">{{action-1}}</div>
|
|
14
|
-
<div class="osui-action-sheet__item">{{action-2}}</div>
|
|
15
|
-
</div>
|
|
16
|
-
</div>
|
|
17
|
-
```
|
|
18
|
-
|
|
19
|
-
**Mandatory classes**: `.osui-action-sheet`
|
|
20
|
-
|
|
21
|
-
## Animate
|
|
22
|
-
|
|
23
|
-
Apply CSS animations to content on appear, scroll, or trigger.
|
|
24
|
-
|
|
25
|
-
```html
|
|
26
|
-
<div class="animate" data-animate="fadeIn">
|
|
27
|
-
{{content}}
|
|
28
|
-
</div>
|
|
29
|
-
```
|
|
30
|
-
|
|
31
|
-
**Mandatory classes**: `.animate`
|
|
32
|
-
**Animation types**: `fadeIn`, `slideInUp`, `slideInDown`, `slideInLeft`, `slideInRight`, `zoomIn`, `bounceIn`
|
|
33
|
-
|
|
34
|
-
## Animated Label
|
|
35
|
-
|
|
36
|
-
Input label that animates from placeholder to floating label on focus.
|
|
37
|
-
|
|
38
|
-
```html
|
|
39
|
-
<div class="animated-label">
|
|
40
|
-
<input type="text" class="form-control" placeholder=" " />
|
|
41
|
-
<label>{{label-text}}</label>
|
|
42
|
-
</div>
|
|
43
|
-
```
|
|
44
|
-
|
|
45
|
-
**Mandatory classes**: `.animated-label`
|
|
46
|
-
**Note**: The `placeholder=" "` (space) is required for the CSS animation to work.
|
|
47
|
-
|
|
48
|
-
## Bottom Sheet
|
|
49
|
-
|
|
50
|
-
Mobile-style panel that slides up from the bottom of the screen.
|
|
51
|
-
|
|
52
|
-
```html
|
|
53
|
-
<div class="osui-bottom-sheet">
|
|
54
|
-
<div class="osui-bottom-sheet__header">
|
|
55
|
-
<div class="osui-bottom-sheet__handle"></div>
|
|
56
|
-
{{header-content}}
|
|
57
|
-
</div>
|
|
58
|
-
<div class="osui-bottom-sheet__content">{{content}}</div>
|
|
59
|
-
</div>
|
|
60
|
-
```
|
|
61
|
-
|
|
62
|
-
**Mandatory classes**: `.osui-bottom-sheet`
|
|
63
|
-
|
|
64
|
-
## Carousel
|
|
65
|
-
|
|
66
|
-
Horizontal content slider with navigation dots.
|
|
67
|
-
|
|
68
|
-
```html
|
|
69
|
-
<div class="osui-carousel" id="carousel-1">
|
|
70
|
-
<div class="osui-carousel__wrapper">
|
|
71
|
-
<div class="osui-carousel__item">{{slide-1}}</div>
|
|
72
|
-
<div class="osui-carousel__item">{{slide-2}}</div>
|
|
73
|
-
<div class="osui-carousel__item">{{slide-3}}</div>
|
|
74
|
-
</div>
|
|
75
|
-
<div class="osui-carousel__navigation">
|
|
76
|
-
<div class="osui-carousel__dots"></div>
|
|
77
|
-
</div>
|
|
78
|
-
</div>
|
|
79
|
-
```
|
|
80
|
-
|
|
81
|
-
**Mandatory classes**: `.osui-carousel`, `.osui-carousel__item`
|
|
82
|
-
**CSS Variable**: `--{carousel-id}-width` to control slide width
|
|
83
|
-
|
|
84
|
-
## Date Picker
|
|
85
|
-
|
|
86
|
-
Calendar-based date selection input.
|
|
87
|
-
|
|
88
|
-
```html
|
|
89
|
-
<div class="osui-datepicker">
|
|
90
|
-
<input type="text" class="form-control" placeholder="Select date" />
|
|
91
|
-
</div>
|
|
92
|
-
```
|
|
93
|
-
|
|
94
|
-
**Mandatory classes**: `.osui-datepicker`
|
|
95
|
-
|
|
96
|
-
## Dropdown Search
|
|
97
|
-
|
|
98
|
-
Searchable dropdown selection. Filters options as user types.
|
|
99
|
-
|
|
100
|
-
```html
|
|
101
|
-
<div class="osui-dropdown-search">
|
|
102
|
-
<div class="osui-dropdown-search__trigger">
|
|
103
|
-
<input type="text" placeholder="Search..." />
|
|
104
|
-
</div>
|
|
105
|
-
<div class="osui-dropdown-search__content">
|
|
106
|
-
<div class="osui-dropdown-search__item">{{option-1}}</div>
|
|
107
|
-
<div class="osui-dropdown-search__item">{{option-2}}</div>
|
|
108
|
-
</div>
|
|
109
|
-
</div>
|
|
110
|
-
```
|
|
111
|
-
|
|
112
|
-
**Mandatory classes**: `.osui-dropdown-search`
|
|
113
|
-
|
|
114
|
-
## Dropdown Tags
|
|
115
|
-
|
|
116
|
-
Multi-select dropdown that shows selections as tags/pills.
|
|
117
|
-
|
|
118
|
-
```html
|
|
119
|
-
<div class="osui-dropdown-tags">
|
|
120
|
-
<div class="osui-dropdown-tags__selected">
|
|
121
|
-
<span class="tag">{{selected-1}}</span>
|
|
122
|
-
<span class="tag">{{selected-2}}</span>
|
|
123
|
-
</div>
|
|
124
|
-
<div class="osui-dropdown-tags__content">
|
|
125
|
-
<div class="osui-dropdown-tags__item">{{option-1}}</div>
|
|
126
|
-
<div class="osui-dropdown-tags__item">{{option-2}}</div>
|
|
127
|
-
</div>
|
|
128
|
-
</div>
|
|
129
|
-
```
|
|
130
|
-
|
|
131
|
-
**Mandatory classes**: `.osui-dropdown-tags`
|
|
132
|
-
|
|
133
|
-
## Floating Actions
|
|
134
|
-
|
|
135
|
-
FAB — floating action button with expandable sub-actions.
|
|
136
|
-
|
|
137
|
-
```html
|
|
138
|
-
<div class="osui-floating-actions" style="--delay: 0.1s;">
|
|
139
|
-
<div class="osui-floating-actions__trigger">
|
|
140
|
-
<button class="btn btn-primary border-radius-circle">+</button>
|
|
141
|
-
</div>
|
|
142
|
-
<div class="osui-floating-actions__items">
|
|
143
|
-
<div class="osui-floating-actions__item">{{action-1}}</div>
|
|
144
|
-
<div class="osui-floating-actions__item">{{action-2}}</div>
|
|
145
|
-
</div>
|
|
146
|
-
</div>
|
|
147
|
-
```
|
|
148
|
-
|
|
149
|
-
**Mandatory classes**: `.osui-floating-actions`
|
|
150
|
-
**CSS Variable**: `--delay` for staggered animation
|
|
151
|
-
|
|
152
|
-
## Input With Icon
|
|
153
|
-
|
|
154
|
-
Text input with an icon inside (left or right).
|
|
155
|
-
|
|
156
|
-
```html
|
|
157
|
-
<div class="input-with-icon">
|
|
158
|
-
<span class="icon">{{icon}}</span>
|
|
159
|
-
<input type="text" class="form-control" placeholder="{{placeholder}}" />
|
|
160
|
-
</div>
|
|
161
|
-
```
|
|
162
|
-
|
|
163
|
-
**Mandatory classes**: `.input-with-icon`
|
|
164
|
-
**Icon position**: `.input-with-icon--left` (default), `.input-with-icon--right`
|
|
165
|
-
|
|
166
|
-
## Lightbox Image
|
|
167
|
-
|
|
168
|
-
Clickable image that opens in a fullscreen overlay.
|
|
169
|
-
|
|
170
|
-
```html
|
|
171
|
-
<div class="lightbox-image">
|
|
172
|
-
<img src="{{thumbnail-url}}" alt="{{alt-text}}" />
|
|
173
|
-
</div>
|
|
174
|
-
```
|
|
175
|
-
|
|
176
|
-
**Mandatory classes**: `.lightbox-image`
|
|
177
|
-
|
|
178
|
-
## Notification
|
|
179
|
-
|
|
180
|
-
Toast-style notification that appears briefly.
|
|
181
|
-
|
|
182
|
-
```html
|
|
183
|
-
<div class="osui-notification osui-notification--{type}">
|
|
184
|
-
<div class="osui-notification__content">{{message}}</div>
|
|
185
|
-
<div class="osui-notification__close"></div>
|
|
186
|
-
</div>
|
|
187
|
-
```
|
|
188
|
-
|
|
189
|
-
**Types**: `info`, `success`, `warning`, `error`
|
|
190
|
-
**Position**: `.osui-notification--top`, `.osui-notification--bottom`
|
|
191
|
-
|
|
192
|
-
## Range Slider
|
|
193
|
-
|
|
194
|
-
Single-value slider input.
|
|
195
|
-
|
|
196
|
-
```html
|
|
197
|
-
<div class="osui-range-slider">
|
|
198
|
-
<input type="range" min="0" max="100" value="50" />
|
|
199
|
-
</div>
|
|
200
|
-
```
|
|
201
|
-
|
|
202
|
-
**Mandatory classes**: `.osui-range-slider`
|
|
203
|
-
|
|
204
|
-
## Range Slider Interval
|
|
205
|
-
|
|
206
|
-
Dual-handle slider for selecting a range.
|
|
207
|
-
|
|
208
|
-
```html
|
|
209
|
-
<div class="osui-range-slider-interval">
|
|
210
|
-
<input type="range" min="0" max="100" value="25" />
|
|
211
|
-
<input type="range" min="0" max="100" value="75" />
|
|
212
|
-
</div>
|
|
213
|
-
```
|
|
214
|
-
|
|
215
|
-
**Mandatory classes**: `.osui-range-slider-interval`
|
|
216
|
-
|
|
217
|
-
## Scrollable Area
|
|
218
|
-
|
|
219
|
-
Content area with overflow scrolling and configurable dimensions.
|
|
220
|
-
|
|
221
|
-
```html
|
|
222
|
-
<div class="osui-scrollable-area" style="
|
|
223
|
-
--scrollable-area-width: 100%;
|
|
224
|
-
--scrollable-area-height: 300px;
|
|
225
|
-
">
|
|
226
|
-
{{scrollable-content}}
|
|
227
|
-
</div>
|
|
228
|
-
```
|
|
229
|
-
|
|
230
|
-
**Mandatory classes**: `.osui-scrollable-area`
|
|
231
|
-
**CSS Variables**: `--scrollable-area-width`, `--scrollable-area-height`
|
|
232
|
-
|
|
233
|
-
## Search
|
|
234
|
-
|
|
235
|
-
Search input with clear button and optional results area.
|
|
236
|
-
|
|
237
|
-
```html
|
|
238
|
-
<div class="osui-search">
|
|
239
|
-
<div class="osui-search__input">
|
|
240
|
-
<input type="text" class="form-control" placeholder="Search..." />
|
|
241
|
-
<span class="osui-search__icon"></span>
|
|
242
|
-
</div>
|
|
243
|
-
<div class="osui-search__results">{{results}}</div>
|
|
244
|
-
</div>
|
|
245
|
-
```
|
|
246
|
-
|
|
247
|
-
**Mandatory classes**: `.osui-search`
|
|
248
|
-
|
|
249
|
-
## Sidebar
|
|
250
|
-
|
|
251
|
-
Slide-in panel from left or right edge.
|
|
252
|
-
|
|
253
|
-
```html
|
|
254
|
-
<div class="osui-sidebar osui-sidebar--{direction}">
|
|
255
|
-
<div class="osui-sidebar__header">{{header}}</div>
|
|
256
|
-
<div class="osui-sidebar__content">{{content}}</div>
|
|
257
|
-
</div>
|
|
258
|
-
```
|
|
259
|
-
|
|
260
|
-
**Direction**: `left` (default), `right`
|
|
261
|
-
**Mandatory classes**: `.osui-sidebar`
|
|
262
|
-
|
|
263
|
-
## Stacked Cards
|
|
264
|
-
|
|
265
|
-
Swipeable stack of overlapping cards (Tinder-style).
|
|
266
|
-
|
|
267
|
-
```html
|
|
268
|
-
<div class="osui-stacked-cards">
|
|
269
|
-
<div class="osui-stacked-cards__item">{{card-1}}</div>
|
|
270
|
-
<div class="osui-stacked-cards__item">{{card-2}}</div>
|
|
271
|
-
<div class="osui-stacked-cards__item">{{card-3}}</div>
|
|
272
|
-
</div>
|
|
273
|
-
```
|
|
274
|
-
|
|
275
|
-
**Mandatory classes**: `.osui-stacked-cards`, `.osui-stacked-cards__item`
|
|
276
|
-
|
|
277
|
-
## Video
|
|
278
|
-
|
|
279
|
-
Responsive video embed container.
|
|
280
|
-
|
|
281
|
-
```html
|
|
282
|
-
<div class="video-container">
|
|
283
|
-
<iframe src="{{video-url}}" allowfullscreen></iframe>
|
|
284
|
-
</div>
|
|
285
|
-
```
|
|
286
|
-
|
|
287
|
-
**Mandatory classes**: `.video-container`
|
|
288
|
-
**Note**: Maintains 16:9 aspect ratio automatically.
|
|
@@ -1,180 +0,0 @@
|
|
|
1
|
-
# OutSystems UI — Navigation Patterns (9)
|
|
2
|
-
|
|
3
|
-
Patterns for navigating between screens, sections, and steps.
|
|
4
|
-
|
|
5
|
-
## Bottom Bar Item
|
|
6
|
-
|
|
7
|
-
Mobile-style tab bar item at the bottom of the screen.
|
|
8
|
-
|
|
9
|
-
```html
|
|
10
|
-
<div class="bottom-bar">
|
|
11
|
-
<div class="bottom-bar-item active">
|
|
12
|
-
<span class="bottom-bar-item-icon">{{icon-1}}</span>
|
|
13
|
-
<span class="bottom-bar-item-text">{{label-1}}</span>
|
|
14
|
-
</div>
|
|
15
|
-
<div class="bottom-bar-item">
|
|
16
|
-
<span class="bottom-bar-item-icon">{{icon-2}}</span>
|
|
17
|
-
<span class="bottom-bar-item-text">{{label-2}}</span>
|
|
18
|
-
</div>
|
|
19
|
-
<div class="bottom-bar-item">
|
|
20
|
-
<span class="bottom-bar-item-icon">{{icon-3}}</span>
|
|
21
|
-
<span class="bottom-bar-item-text">{{label-3}}</span>
|
|
22
|
-
</div>
|
|
23
|
-
</div>
|
|
24
|
-
```
|
|
25
|
-
|
|
26
|
-
**Mandatory classes**: `.bottom-bar`, `.bottom-bar-item`
|
|
27
|
-
**Active state**: Add `.active` to the current item.
|
|
28
|
-
|
|
29
|
-
## Breadcrumbs
|
|
30
|
-
|
|
31
|
-
Hierarchical navigation trail showing the user's location.
|
|
32
|
-
|
|
33
|
-
```html
|
|
34
|
-
<div class="breadcrumbs">
|
|
35
|
-
<a class="breadcrumb-item" href="#">Home</a>
|
|
36
|
-
<span class="breadcrumb-separator">/</span>
|
|
37
|
-
<a class="breadcrumb-item" href="#">Category</a>
|
|
38
|
-
<span class="breadcrumb-separator">/</span>
|
|
39
|
-
<span class="breadcrumb-item active">Current Page</span>
|
|
40
|
-
</div>
|
|
41
|
-
```
|
|
42
|
-
|
|
43
|
-
**Mandatory classes**: `.breadcrumbs`, `.breadcrumb-item`
|
|
44
|
-
**Active state**: Last item uses `.active` and is a `<span>`, not a link.
|
|
45
|
-
|
|
46
|
-
## Overflow Menu
|
|
47
|
-
|
|
48
|
-
Three-dot menu that reveals additional actions in a dropdown.
|
|
49
|
-
|
|
50
|
-
```html
|
|
51
|
-
<div class="osui-overflow-menu">
|
|
52
|
-
<div class="osui-overflow-menu__trigger">
|
|
53
|
-
<span class="osui-overflow-menu__icon">⋯</span>
|
|
54
|
-
</div>
|
|
55
|
-
<div class="osui-overflow-menu__content">
|
|
56
|
-
<div class="osui-overflow-menu__item">{{action-1}}</div>
|
|
57
|
-
<div class="osui-overflow-menu__item">{{action-2}}</div>
|
|
58
|
-
<div class="osui-overflow-menu__item osui-overflow-menu__item--destructive">{{delete-action}}</div>
|
|
59
|
-
</div>
|
|
60
|
-
</div>
|
|
61
|
-
```
|
|
62
|
-
|
|
63
|
-
**Mandatory classes**: `.osui-overflow-menu`
|
|
64
|
-
**Destructive variant**: `.osui-overflow-menu__item--destructive` for dangerous actions (red text).
|
|
65
|
-
|
|
66
|
-
## Pagination
|
|
67
|
-
|
|
68
|
-
Page navigation for large datasets.
|
|
69
|
-
|
|
70
|
-
```html
|
|
71
|
-
<div class="pagination">
|
|
72
|
-
<a class="pagination-item pagination-prev" href="#">«</a>
|
|
73
|
-
<a class="pagination-item" href="#">1</a>
|
|
74
|
-
<a class="pagination-item active" href="#">2</a>
|
|
75
|
-
<a class="pagination-item" href="#">3</a>
|
|
76
|
-
<a class="pagination-item pagination-next" href="#">»</a>
|
|
77
|
-
</div>
|
|
78
|
-
```
|
|
79
|
-
|
|
80
|
-
**Mandatory classes**: `.pagination`, `.pagination-item`
|
|
81
|
-
**Active state**: `.active` on the current page.
|
|
82
|
-
|
|
83
|
-
## Section Index
|
|
84
|
-
|
|
85
|
-
Sticky sidebar or inline index that links to page sections.
|
|
86
|
-
|
|
87
|
-
```html
|
|
88
|
-
<div class="section-index">
|
|
89
|
-
<a class="section-index-item active" href="#section-1">Section 1</a>
|
|
90
|
-
<a class="section-index-item" href="#section-2">Section 2</a>
|
|
91
|
-
<a class="section-index-item" href="#section-3">Section 3</a>
|
|
92
|
-
</div>
|
|
93
|
-
```
|
|
94
|
-
|
|
95
|
-
**Mandatory classes**: `.section-index`, `.section-index-item`
|
|
96
|
-
|
|
97
|
-
## Submenu
|
|
98
|
-
|
|
99
|
-
Nested navigation menu for secondary-level items.
|
|
100
|
-
|
|
101
|
-
```html
|
|
102
|
-
<div class="submenu">
|
|
103
|
-
<a class="submenu-item active" href="#">Overview</a>
|
|
104
|
-
<a class="submenu-item" href="#">Details</a>
|
|
105
|
-
<a class="submenu-item" href="#">Settings</a>
|
|
106
|
-
</div>
|
|
107
|
-
```
|
|
108
|
-
|
|
109
|
-
**Mandatory classes**: `.submenu`, `.submenu-item`
|
|
110
|
-
|
|
111
|
-
## Tabs
|
|
112
|
-
|
|
113
|
-
Tabbed content switcher.
|
|
114
|
-
|
|
115
|
-
```html
|
|
116
|
-
<div class="osui-tabs">
|
|
117
|
-
<div class="osui-tabs__header">
|
|
118
|
-
<div class="osui-tabs__header-item active">{{tab-1-label}}</div>
|
|
119
|
-
<div class="osui-tabs__header-item">{{tab-2-label}}</div>
|
|
120
|
-
<div class="osui-tabs__header-item">{{tab-3-label}}</div>
|
|
121
|
-
</div>
|
|
122
|
-
<div class="osui-tabs__content">
|
|
123
|
-
<div class="osui-tabs__content-item active">{{tab-1-content}}</div>
|
|
124
|
-
<div class="osui-tabs__content-item">{{tab-2-content}}</div>
|
|
125
|
-
<div class="osui-tabs__content-item">{{tab-3-content}}</div>
|
|
126
|
-
</div>
|
|
127
|
-
</div>
|
|
128
|
-
```
|
|
129
|
-
|
|
130
|
-
**Mandatory classes**: `.osui-tabs`, `.osui-tabs__header-item`, `.osui-tabs__content-item`
|
|
131
|
-
**Active state**: Both the header item and content item need `.active` class.
|
|
132
|
-
**Orientation**: Add `.osui-tabs--vertical` for a vertical tab layout.
|
|
133
|
-
|
|
134
|
-
## Timeline Item
|
|
135
|
-
|
|
136
|
-
Vertical timeline entry for displaying chronological events.
|
|
137
|
-
|
|
138
|
-
```html
|
|
139
|
-
<div class="timeline">
|
|
140
|
-
<div class="timeline-item">
|
|
141
|
-
<div class="timeline-item-icon">{{icon}}</div>
|
|
142
|
-
<div class="timeline-item-content">
|
|
143
|
-
<div class="timeline-item-header">
|
|
144
|
-
<span class="timeline-item-title">{{title}}</span>
|
|
145
|
-
<span class="timeline-item-date">{{date}}</span>
|
|
146
|
-
</div>
|
|
147
|
-
<div class="timeline-item-body">{{description}}</div>
|
|
148
|
-
</div>
|
|
149
|
-
</div>
|
|
150
|
-
<div class="timeline-item">
|
|
151
|
-
<!-- repeat for each event -->
|
|
152
|
-
</div>
|
|
153
|
-
</div>
|
|
154
|
-
```
|
|
155
|
-
|
|
156
|
-
**Mandatory classes**: `.timeline`, `.timeline-item`
|
|
157
|
-
|
|
158
|
-
## Wizard
|
|
159
|
-
|
|
160
|
-
Multi-step process indicator with numbered steps.
|
|
161
|
-
|
|
162
|
-
```html
|
|
163
|
-
<div class="osui-wizard">
|
|
164
|
-
<div class="osui-wizard__item osui-wizard__item--past">
|
|
165
|
-
<div class="osui-wizard__item__step">1</div>
|
|
166
|
-
<div class="osui-wizard__item__label">{{step-1-label}}</div>
|
|
167
|
-
</div>
|
|
168
|
-
<div class="osui-wizard__item osui-wizard__item--active">
|
|
169
|
-
<div class="osui-wizard__item__step">2</div>
|
|
170
|
-
<div class="osui-wizard__item__label">{{step-2-label}}</div>
|
|
171
|
-
</div>
|
|
172
|
-
<div class="osui-wizard__item">
|
|
173
|
-
<div class="osui-wizard__item__step">3</div>
|
|
174
|
-
<div class="osui-wizard__item__label">{{step-3-label}}</div>
|
|
175
|
-
</div>
|
|
176
|
-
</div>
|
|
177
|
-
```
|
|
178
|
-
|
|
179
|
-
**Mandatory classes**: `.osui-wizard`, `.osui-wizard__item`
|
|
180
|
-
**Step states**: `.osui-wizard__item--past` (completed), `.osui-wizard__item--active` (current), no modifier (future)
|
|
@@ -1,94 +0,0 @@
|
|
|
1
|
-
# OutSystems UI — Number Patterns (6)
|
|
2
|
-
|
|
3
|
-
Patterns for displaying numeric data: badges, counters, progress indicators, and ratings.
|
|
4
|
-
|
|
5
|
-
## Badge
|
|
6
|
-
|
|
7
|
-
Small numeric or text label, typically overlaid on another element.
|
|
8
|
-
|
|
9
|
-
```html
|
|
10
|
-
<span class="badge">{{value}}</span>
|
|
11
|
-
```
|
|
12
|
-
|
|
13
|
-
**Mandatory classes**: `.badge`
|
|
14
|
-
**Color variants**: Combine with `.background-primary`, `.background-success`, `.background-error`, etc.
|
|
15
|
-
**Shape**: Add `.border-radius-circle` for a circular badge.
|
|
16
|
-
**Usage**: Overlay on icons for notification counts, or inline in lists.
|
|
17
|
-
|
|
18
|
-
## Counter
|
|
19
|
-
|
|
20
|
-
Displays a count value with a label. Often used in dashboard cards.
|
|
21
|
-
|
|
22
|
-
```html
|
|
23
|
-
<div class="counter">
|
|
24
|
-
<div class="counter-value">{{number}}</div>
|
|
25
|
-
<div class="counter-label">{{label}}</div>
|
|
26
|
-
</div>
|
|
27
|
-
```
|
|
28
|
-
|
|
29
|
-
**Mandatory classes**: `.counter`
|
|
30
|
-
**Sizing**: Use `.font-size-display` or `.font-size-h1` on `.counter-value` for hero numbers.
|
|
31
|
-
|
|
32
|
-
## Icon Badge
|
|
33
|
-
|
|
34
|
-
Badge attached to an icon — for notification indicators on menu items or buttons.
|
|
35
|
-
|
|
36
|
-
```html
|
|
37
|
-
<div class="icon-badge">
|
|
38
|
-
<span class="icon">{{icon}}</span>
|
|
39
|
-
<span class="badge">{{count}}</span>
|
|
40
|
-
</div>
|
|
41
|
-
```
|
|
42
|
-
|
|
43
|
-
**Mandatory classes**: `.icon-badge`
|
|
44
|
-
**Note**: The badge is absolutely positioned on top-right of the icon container.
|
|
45
|
-
|
|
46
|
-
## Progress Bar
|
|
47
|
-
|
|
48
|
-
Horizontal bar showing completion percentage.
|
|
49
|
-
|
|
50
|
-
```html
|
|
51
|
-
<div class="progress-bar">
|
|
52
|
-
<div class="progress-bar-value" style="width: {{percentage}}%;">
|
|
53
|
-
{{percentage}}%
|
|
54
|
-
</div>
|
|
55
|
-
</div>
|
|
56
|
-
```
|
|
57
|
-
|
|
58
|
-
**Mandatory classes**: `.progress-bar`, `.progress-bar-value`
|
|
59
|
-
**Color**: Apply `.background-primary`, `.background-success`, etc. to `.progress-bar-value`.
|
|
60
|
-
**Size**: The containing `.progress-bar` handles the track; `.progress-bar-value` is the fill.
|
|
61
|
-
|
|
62
|
-
## Progress Circle
|
|
63
|
-
|
|
64
|
-
Circular/radial progress indicator.
|
|
65
|
-
|
|
66
|
-
```html
|
|
67
|
-
<div class="progress-circle" data-progress="{{percentage}}">
|
|
68
|
-
<div class="progress-circle-content">
|
|
69
|
-
<span class="progress-circle-value">{{percentage}}%</span>
|
|
70
|
-
<span class="progress-circle-label">{{label}}</span>
|
|
71
|
-
</div>
|
|
72
|
-
</div>
|
|
73
|
-
```
|
|
74
|
-
|
|
75
|
-
**Mandatory classes**: `.progress-circle`
|
|
76
|
-
**Data**: Set `data-progress` attribute to a value 0–100.
|
|
77
|
-
|
|
78
|
-
## Rating
|
|
79
|
-
|
|
80
|
-
Star-based rating display and input.
|
|
81
|
-
|
|
82
|
-
```html
|
|
83
|
-
<div class="osui-rating" style="--rating-size: 16px;">
|
|
84
|
-
<div class="osui-rating__item osui-rating__item--filled">★</div>
|
|
85
|
-
<div class="osui-rating__item osui-rating__item--filled">★</div>
|
|
86
|
-
<div class="osui-rating__item osui-rating__item--filled">★</div>
|
|
87
|
-
<div class="osui-rating__item osui-rating__item--half">★</div>
|
|
88
|
-
<div class="osui-rating__item">★</div>
|
|
89
|
-
</div>
|
|
90
|
-
```
|
|
91
|
-
|
|
92
|
-
**Mandatory classes**: `.osui-rating`, `.osui-rating__item`
|
|
93
|
-
**States**: `.osui-rating__item--filled` (full star), `.osui-rating__item--half` (half star), no modifier (empty star)
|
|
94
|
-
**CSS Variable**: `--rating-size` controls the star size (default: 16px)
|
|
@@ -1,124 +0,0 @@
|
|
|
1
|
-
# OutSystems UI — Utility Patterns (9)
|
|
2
|
-
|
|
3
|
-
Helper patterns for layout, alignment, spacing, and event handling.
|
|
4
|
-
|
|
5
|
-
## Align Center
|
|
6
|
-
|
|
7
|
-
Centers content both horizontally and vertically within a container.
|
|
8
|
-
|
|
9
|
-
```html
|
|
10
|
-
<div class="align-center">
|
|
11
|
-
{{content}}
|
|
12
|
-
</div>
|
|
13
|
-
```
|
|
14
|
-
|
|
15
|
-
**Mandatory classes**: `.align-center`
|
|
16
|
-
**Note**: Uses flexbox centering. The parent container must have a defined height.
|
|
17
|
-
|
|
18
|
-
## Button Loading
|
|
19
|
-
|
|
20
|
-
Alternative button loading pattern. Replaces button content with a spinner.
|
|
21
|
-
|
|
22
|
-
```html
|
|
23
|
-
<button class="btn btn-primary btn-loading">
|
|
24
|
-
<span class="btn-loading-spinner"></span>
|
|
25
|
-
{{loading-text}}
|
|
26
|
-
</button>
|
|
27
|
-
```
|
|
28
|
-
|
|
29
|
-
**Mandatory classes**: `.btn-loading`
|
|
30
|
-
**Note**: This is the same as adding `.btn-loading` to any button. See the Buttons section in SKILL.md.
|
|
31
|
-
|
|
32
|
-
## Center Content
|
|
33
|
-
|
|
34
|
-
Centers content horizontally with max-width constraint.
|
|
35
|
-
|
|
36
|
-
```html
|
|
37
|
-
<div class="center-content">
|
|
38
|
-
{{content}}
|
|
39
|
-
</div>
|
|
40
|
-
```
|
|
41
|
-
|
|
42
|
-
**Mandatory classes**: `.center-content`
|
|
43
|
-
**Note**: Adds `margin: 0 auto` and a `max-width`. Useful for constraining content width on wide screens.
|
|
44
|
-
|
|
45
|
-
## Margin Container
|
|
46
|
-
|
|
47
|
-
Adds consistent horizontal margins (gutters) to content.
|
|
48
|
-
|
|
49
|
-
```html
|
|
50
|
-
<div class="margin-container">
|
|
51
|
-
{{content}}
|
|
52
|
-
</div>
|
|
53
|
-
```
|
|
54
|
-
|
|
55
|
-
**Mandatory classes**: `.margin-container`
|
|
56
|
-
**Note**: Typically used for page-level content areas to add left/right padding that responds to screen width.
|
|
57
|
-
|
|
58
|
-
## Mouse Events
|
|
59
|
-
|
|
60
|
-
Container that exposes mouse interaction events for child elements.
|
|
61
|
-
|
|
62
|
-
```html
|
|
63
|
-
<div class="mouse-events" data-event="hover">
|
|
64
|
-
{{content}}
|
|
65
|
-
</div>
|
|
66
|
-
```
|
|
67
|
-
|
|
68
|
-
**Mandatory classes**: `.mouse-events`
|
|
69
|
-
**Events**: `hover`, `click`, `mouseenter`, `mouseleave`
|
|
70
|
-
**Note**: This is a wrapper pattern — in OutSystems, the events are wired to Client Actions via the pattern's event handlers.
|
|
71
|
-
|
|
72
|
-
## Separator
|
|
73
|
-
|
|
74
|
-
Horizontal or vertical divider line.
|
|
75
|
-
|
|
76
|
-
```html
|
|
77
|
-
<hr class="separator" />
|
|
78
|
-
```
|
|
79
|
-
|
|
80
|
-
**Mandatory classes**: `.separator`
|
|
81
|
-
**Orientation**: Default is horizontal. Add `.separator--vertical` for vertical.
|
|
82
|
-
**Color**: Inherits from `--color-neutral-4` by default.
|
|
83
|
-
**Spacing**: The separator has built-in margin. Override with `.margin-top-none`, `.margin-bottom-none`, etc.
|
|
84
|
-
|
|
85
|
-
## Swipe Events
|
|
86
|
-
|
|
87
|
-
Container that detects swipe gestures (mobile).
|
|
88
|
-
|
|
89
|
-
```html
|
|
90
|
-
<div class="swipe-events">
|
|
91
|
-
{{content}}
|
|
92
|
-
</div>
|
|
93
|
-
```
|
|
94
|
-
|
|
95
|
-
**Mandatory classes**: `.swipe-events`
|
|
96
|
-
**Note**: In OutSystems, swipe direction events (Left, Right, Up, Down) are wired to Client Actions. In a `.visual.html` prototype, this is a structural placeholder.
|
|
97
|
-
|
|
98
|
-
## Touch Events
|
|
99
|
-
|
|
100
|
-
Container that detects touch interactions (tap, long press).
|
|
101
|
-
|
|
102
|
-
```html
|
|
103
|
-
<div class="touch-events">
|
|
104
|
-
{{content}}
|
|
105
|
-
</div>
|
|
106
|
-
```
|
|
107
|
-
|
|
108
|
-
**Mandatory classes**: `.touch-events`
|
|
109
|
-
**Note**: Like Swipe Events, touch handlers are wired in OutSystems. Structural placeholder in prototypes.
|
|
110
|
-
|
|
111
|
-
## Inline SVG
|
|
112
|
-
|
|
113
|
-
Renders inline SVG content so it can be styled with CSS.
|
|
114
|
-
|
|
115
|
-
```html
|
|
116
|
-
<div class="inline-svg">
|
|
117
|
-
<svg viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg">
|
|
118
|
-
{{svg-path-data}}
|
|
119
|
-
</svg>
|
|
120
|
-
</div>
|
|
121
|
-
```
|
|
122
|
-
|
|
123
|
-
**Mandatory classes**: `.inline-svg`
|
|
124
|
-
**Note**: Inline SVG can be colored with `.text-primary`, `.text-error`, etc. using `fill: currentColor`.
|