create-flowmo 1.0.0 → 1.1.1
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 +263 -28
- 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/template/theme/theme.css +15 -1
- 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,270 +0,0 @@
|
|
|
1
|
-
# OutSystems UI — Core Widgets (16)
|
|
2
|
-
|
|
3
|
-
The fundamental input and display widgets used in every OutSystems screen.
|
|
4
|
-
|
|
5
|
-
## Button
|
|
6
|
-
|
|
7
|
-
Primary interaction element. See the Buttons section in SKILL.md for the full type/size/shape matrix.
|
|
8
|
-
|
|
9
|
-
```html
|
|
10
|
-
<button class="btn btn-primary">{{label}}</button>
|
|
11
|
-
```
|
|
12
|
-
|
|
13
|
-
**Types**: `.btn` (secondary), `.btn-primary`, `.btn-cancel`, `.btn-success`, `.btn-error`
|
|
14
|
-
**Sizes**: `.btn-small`, default, `.btn-large`
|
|
15
|
-
|
|
16
|
-
## Button Group
|
|
17
|
-
|
|
18
|
-
Groups related buttons together with connected borders.
|
|
19
|
-
|
|
20
|
-
```html
|
|
21
|
-
<div class="btn-group">
|
|
22
|
-
<button class="btn active">{{option-1}}</button>
|
|
23
|
-
<button class="btn">{{option-2}}</button>
|
|
24
|
-
<button class="btn">{{option-3}}</button>
|
|
25
|
-
</div>
|
|
26
|
-
```
|
|
27
|
-
|
|
28
|
-
**Mandatory classes**: `.btn-group`
|
|
29
|
-
**Active state**: `.active` on the selected button.
|
|
30
|
-
|
|
31
|
-
## Checkbox
|
|
32
|
-
|
|
33
|
-
Boolean toggle input.
|
|
34
|
-
|
|
35
|
-
```html
|
|
36
|
-
<div class="checkbox">
|
|
37
|
-
<input type="checkbox" id="cb-1" />
|
|
38
|
-
<label for="cb-1">{{label}}</label>
|
|
39
|
-
</div>
|
|
40
|
-
```
|
|
41
|
-
|
|
42
|
-
**Mandatory classes**: `.checkbox`
|
|
43
|
-
**Disabled**: Add `disabled` attribute to input.
|
|
44
|
-
|
|
45
|
-
## Dropdown
|
|
46
|
-
|
|
47
|
-
Selection input with expandable option list.
|
|
48
|
-
|
|
49
|
-
```html
|
|
50
|
-
<div class="dropdown">
|
|
51
|
-
<select class="dropdown-select">
|
|
52
|
-
<option value="">{{placeholder}}</option>
|
|
53
|
-
<option value="1">{{option-1}}</option>
|
|
54
|
-
<option value="2">{{option-2}}</option>
|
|
55
|
-
</select>
|
|
56
|
-
</div>
|
|
57
|
-
```
|
|
58
|
-
|
|
59
|
-
**Mandatory classes**: `.dropdown`
|
|
60
|
-
|
|
61
|
-
## Feedback Message
|
|
62
|
-
|
|
63
|
-
Inline validation or status message, typically shown below form inputs.
|
|
64
|
-
|
|
65
|
-
```html
|
|
66
|
-
<div class="feedback-message feedback-message--{type}">
|
|
67
|
-
{{message}}
|
|
68
|
-
</div>
|
|
69
|
-
```
|
|
70
|
-
|
|
71
|
-
**Types**: `info`, `success`, `warning`, `error`
|
|
72
|
-
**Mandatory classes**: `.feedback-message`, `.feedback-message--{type}`
|
|
73
|
-
|
|
74
|
-
## Form
|
|
75
|
-
|
|
76
|
-
Container for form inputs with consistent spacing and validation patterns.
|
|
77
|
-
|
|
78
|
-
```html
|
|
79
|
-
<form class="form">
|
|
80
|
-
<div class="form-group">
|
|
81
|
-
<label class="form-label">{{label}}</label>
|
|
82
|
-
<input type="text" class="form-control" placeholder="{{placeholder}}" />
|
|
83
|
-
<span class="form-error">{{error-message}}</span>
|
|
84
|
-
</div>
|
|
85
|
-
<div class="form-group">
|
|
86
|
-
<label class="form-label">{{label-2}}</label>
|
|
87
|
-
<textarea class="form-control"></textarea>
|
|
88
|
-
</div>
|
|
89
|
-
<div class="form-actions">
|
|
90
|
-
<button class="btn">Cancel</button>
|
|
91
|
-
<button class="btn btn-primary">Submit</button>
|
|
92
|
-
</div>
|
|
93
|
-
</form>
|
|
94
|
-
```
|
|
95
|
-
|
|
96
|
-
**Mandatory classes**: `.form`, `.form-group`, `.form-label`, `.form-control`
|
|
97
|
-
**Validation**: `.form-error` for error messages, add `.error` to `.form-group` to highlight the field.
|
|
98
|
-
**Actions**: `.form-actions` for the button row (typically right-aligned).
|
|
99
|
-
|
|
100
|
-
## Input
|
|
101
|
-
|
|
102
|
-
Text input field. Always wrap in a `.form-group`.
|
|
103
|
-
|
|
104
|
-
```html
|
|
105
|
-
<div class="form-group">
|
|
106
|
-
<label class="form-label">{{label}}</label>
|
|
107
|
-
<input type="text" class="form-control" placeholder="{{placeholder}}" />
|
|
108
|
-
</div>
|
|
109
|
-
```
|
|
110
|
-
|
|
111
|
-
**Mandatory classes**: `.form-control`
|
|
112
|
-
**Input types**: `text`, `email`, `password`, `number`, `tel`, `url`, `search`, `date`
|
|
113
|
-
**Disabled**: Add `disabled` attribute.
|
|
114
|
-
**Read-only**: Add `readonly` attribute.
|
|
115
|
-
|
|
116
|
-
## Link
|
|
117
|
-
|
|
118
|
-
Styled hyperlink.
|
|
119
|
-
|
|
120
|
-
```html
|
|
121
|
-
<a class="link" href="{{url}}">{{label}}</a>
|
|
122
|
-
```
|
|
123
|
-
|
|
124
|
-
**Mandatory classes**: `.link`
|
|
125
|
-
**Variants**: `.link--underline` for always-underlined style.
|
|
126
|
-
|
|
127
|
-
## List
|
|
128
|
-
|
|
129
|
-
Vertical list container for items.
|
|
130
|
-
|
|
131
|
-
```html
|
|
132
|
-
<div class="list">
|
|
133
|
-
<div class="list-item">{{item-1}}</div>
|
|
134
|
-
<div class="list-item">{{item-2}}</div>
|
|
135
|
-
<div class="list-item">{{item-3}}</div>
|
|
136
|
-
</div>
|
|
137
|
-
```
|
|
138
|
-
|
|
139
|
-
**Mandatory classes**: `.list`, `.list-item`
|
|
140
|
-
**Dividers**: Add `.list--dividers` to the list container for border separators between items.
|
|
141
|
-
|
|
142
|
-
## Popover
|
|
143
|
-
|
|
144
|
-
Small overlay content that appears near a trigger element.
|
|
145
|
-
|
|
146
|
-
```html
|
|
147
|
-
<div class="osui-popover">
|
|
148
|
-
<div class="osui-popover__trigger">{{trigger}}</div>
|
|
149
|
-
<div class="osui-popover__content">
|
|
150
|
-
<div class="osui-popover__header">{{title}}</div>
|
|
151
|
-
<div class="osui-popover__body">{{content}}</div>
|
|
152
|
-
</div>
|
|
153
|
-
</div>
|
|
154
|
-
```
|
|
155
|
-
|
|
156
|
-
**Mandatory classes**: `.osui-popover`
|
|
157
|
-
**Position**: `.osui-popover--top`, `.osui-popover--bottom`, `.osui-popover--left`, `.osui-popover--right`
|
|
158
|
-
|
|
159
|
-
## Popup
|
|
160
|
-
|
|
161
|
-
Modal dialog overlay.
|
|
162
|
-
|
|
163
|
-
```html
|
|
164
|
-
<div class="osui-popup">
|
|
165
|
-
<div class="osui-popup__overlay"></div>
|
|
166
|
-
<div class="osui-popup__container">
|
|
167
|
-
<div class="osui-popup__header">
|
|
168
|
-
<h4>{{title}}</h4>
|
|
169
|
-
<span class="osui-popup__close"></span>
|
|
170
|
-
</div>
|
|
171
|
-
<div class="osui-popup__content">{{content}}</div>
|
|
172
|
-
<div class="osui-popup__footer">
|
|
173
|
-
<button class="btn">Cancel</button>
|
|
174
|
-
<button class="btn btn-primary">Confirm</button>
|
|
175
|
-
</div>
|
|
176
|
-
</div>
|
|
177
|
-
</div>
|
|
178
|
-
```
|
|
179
|
-
|
|
180
|
-
**Mandatory classes**: `.osui-popup`, `.osui-popup__container`
|
|
181
|
-
|
|
182
|
-
## Radio Group
|
|
183
|
-
|
|
184
|
-
Single-selection from a group of options.
|
|
185
|
-
|
|
186
|
-
```html
|
|
187
|
-
<div class="radio-group">
|
|
188
|
-
<div class="radio">
|
|
189
|
-
<input type="radio" name="group-1" id="r-1" />
|
|
190
|
-
<label for="r-1">{{option-1}}</label>
|
|
191
|
-
</div>
|
|
192
|
-
<div class="radio">
|
|
193
|
-
<input type="radio" name="group-1" id="r-2" />
|
|
194
|
-
<label for="r-2">{{option-2}}</label>
|
|
195
|
-
</div>
|
|
196
|
-
</div>
|
|
197
|
-
```
|
|
198
|
-
|
|
199
|
-
**Mandatory classes**: `.radio-group`, `.radio`
|
|
200
|
-
**Note**: All radio inputs in a group must share the same `name` attribute.
|
|
201
|
-
|
|
202
|
-
## Switch
|
|
203
|
-
|
|
204
|
-
Toggle switch (on/off).
|
|
205
|
-
|
|
206
|
-
```html
|
|
207
|
-
<div class="switch">
|
|
208
|
-
<input type="checkbox" id="sw-1" />
|
|
209
|
-
<label for="sw-1">{{label}}</label>
|
|
210
|
-
</div>
|
|
211
|
-
```
|
|
212
|
-
|
|
213
|
-
**Mandatory classes**: `.switch`
|
|
214
|
-
**Note**: Structurally similar to checkbox but styled as a sliding toggle.
|
|
215
|
-
|
|
216
|
-
## Table
|
|
217
|
-
|
|
218
|
-
Data table for displaying records.
|
|
219
|
-
|
|
220
|
-
```html
|
|
221
|
-
<table class="table">
|
|
222
|
-
<thead>
|
|
223
|
-
<tr>
|
|
224
|
-
<th>{{header-1}}</th>
|
|
225
|
-
<th>{{header-2}}</th>
|
|
226
|
-
<th>{{header-3}}</th>
|
|
227
|
-
</tr>
|
|
228
|
-
</thead>
|
|
229
|
-
<tbody>
|
|
230
|
-
<tr>
|
|
231
|
-
<td>{{cell-1}}</td>
|
|
232
|
-
<td>{{cell-2}}</td>
|
|
233
|
-
<td>{{cell-3}}</td>
|
|
234
|
-
</tr>
|
|
235
|
-
</tbody>
|
|
236
|
-
</table>
|
|
237
|
-
```
|
|
238
|
-
|
|
239
|
-
**Mandatory classes**: `.table`
|
|
240
|
-
**Variants**: `.table--striped` (alternating row colors), `.table--hover` (row highlight on hover), `.table--compact` (reduced padding)
|
|
241
|
-
|
|
242
|
-
## TextArea
|
|
243
|
-
|
|
244
|
-
Multi-line text input.
|
|
245
|
-
|
|
246
|
-
```html
|
|
247
|
-
<div class="form-group">
|
|
248
|
-
<label class="form-label">{{label}}</label>
|
|
249
|
-
<textarea class="form-control" rows="4" placeholder="{{placeholder}}"></textarea>
|
|
250
|
-
</div>
|
|
251
|
-
```
|
|
252
|
-
|
|
253
|
-
**Mandatory classes**: `.form-control`
|
|
254
|
-
**Note**: Uses the same `.form-control` class as Input.
|
|
255
|
-
|
|
256
|
-
## Upload
|
|
257
|
-
|
|
258
|
-
File upload input.
|
|
259
|
-
|
|
260
|
-
```html
|
|
261
|
-
<div class="upload">
|
|
262
|
-
<div class="upload-area">
|
|
263
|
-
<span class="upload-icon">{{icon}}</span>
|
|
264
|
-
<span class="upload-text">Drag and drop or click to upload</span>
|
|
265
|
-
<input type="file" class="upload-input" />
|
|
266
|
-
</div>
|
|
267
|
-
</div>
|
|
268
|
-
```
|
|
269
|
-
|
|
270
|
-
**Mandatory classes**: `.upload`, `.upload-area`, `.upload-input`
|