cyber-elx 1.1.5 → 1.1.9
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/DEV_DOC/LoginRegisterPagesDev.md +8 -0
- package/DEV_DOC/PaymentPageDev.md +8 -0
- package/DEV_DOC/README.md +29 -0
- package/DEV_DOC/StudentCssDev.md +313 -0
- package/DEV_DOC/StudentListCoursesPageDev.md +779 -0
- package/DEV_DOC/StudentMyCoursesPageDev.md +447 -0
- package/DEV_DOC/StudentStartupDev.md +25 -0
- package/DEV_DOC/TeacherCssDev.md +313 -0
- package/DEV_DOC/ThemeDev.md +26 -10
- package/package.json +1 -1
- package/src/api.js +3 -3
- package/src/files.js +2 -1
package/DEV_DOC/README.md
CHANGED
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
# CyberOcean Custom Pages CLI Tool
|
|
2
|
+
|
|
3
|
+
This directory contains documentation for customizing the CyberOcean ELX platform.
|
|
4
|
+
|
|
5
|
+
## Documentation Index
|
|
6
|
+
|
|
7
|
+
### [LoginRegisterPagesDev.md](LoginRegisterPagesDev.md)
|
|
8
|
+
Custom Login & Register pages using Vue.js components. Covers the multi-step login flow (email → password → login) and password recovery flow (send code → verify → new password). Also documents the registration form with optional email verification. Includes available props, events to emit, and complete working examples.
|
|
9
|
+
|
|
10
|
+
### [PaymentPageDev.md](PaymentPageDev.md)
|
|
11
|
+
Custom Payment page for course enrollment. Handles guest vs logged-in user states, displays course information with price breakdown, and provides payment method selection (online payment or course request). Documents the course object structure, user object, and all dialog interactions.
|
|
12
|
+
|
|
13
|
+
### [StudentCssDev.md](StudentCssDev.md)
|
|
14
|
+
CSS customization guide for the Student Dashboard. Covers navbar styling (background color, profile button, dropdown menu) and sidebar styling (background, active items, hover effects, submenu items). Includes important notes about using `::before` for backgrounds and required `!important` overrides.
|
|
15
|
+
|
|
16
|
+
### [StudentListCoursesPageDev.md](StudentListCoursesPageDev.md)
|
|
17
|
+
Custom Student List Courses page (course catalog). Displays categories grid, featured courses with flip-card hover effect, and promoted courses horizontal slider with navigation. Includes responsive design (1-4 columns), primary color theming via Vuex store, and slider state management with resize handling.
|
|
18
|
+
|
|
19
|
+
### [StudentMyCoursesPageDev.md](StudentMyCoursesPageDev.md)
|
|
20
|
+
Custom Student My Courses page (student dashboard home). Shows statistics cards (total courses, completed, certificates), course list with progress bars, and certificate generation for completed courses. Documents the cardsInfos structure, courses array with progress tracking, and available translation keys.
|
|
21
|
+
|
|
22
|
+
### [StudentStartupDev.md](StudentStartupDev.md)
|
|
23
|
+
Available JavaScript variables for student-related customizations. Documents the student user object accessible via `$nuxt.$store.state.auth.user` including fields like id, name, email, phone, grade, and profile image.
|
|
24
|
+
|
|
25
|
+
### [TeacherCssDev.md](TeacherCssDev.md)
|
|
26
|
+
CSS customization guide for the Teacher Dashboard. Same structure as StudentCssDev.md - covers navbar styling and sidebar styling with examples for background colors, active states, hover effects, and responsive behavior.
|
|
27
|
+
|
|
28
|
+
### [ThemeDev.md](ThemeDev.md)
|
|
29
|
+
Comprehensive theme development guide using Liquid templating. Covers layout structure, sections, templates, and all available Liquid variables for each page type (home, course, courses, category, blog, blogs, contact, about). Includes object structures for courses, categories, articles, and website URLs.
|
|
@@ -0,0 +1,313 @@
|
|
|
1
|
+
# Student Dashboard Customization Guide (using CSS)
|
|
2
|
+
|
|
3
|
+
## All student dashboard pages background color
|
|
4
|
+
- **IMPORTANT:** The background color should be very light, since most of pages content are dark
|
|
5
|
+
```css
|
|
6
|
+
.v-main {
|
|
7
|
+
background: #e2f1ffff !important;
|
|
8
|
+
}
|
|
9
|
+
```
|
|
10
|
+
- **Do not** Edit `.v-main::before` or `.v-main::after` unless requested
|
|
11
|
+
|
|
12
|
+
|
|
13
|
+
## Navbar Customization Guide
|
|
14
|
+
|
|
15
|
+
### Important: CSS Selector Rules
|
|
16
|
+
|
|
17
|
+
**All your custom CSS must start with this selector:**
|
|
18
|
+
|
|
19
|
+
- `.navbar` - Applies to the navbar/top bar
|
|
20
|
+
|
|
21
|
+
##### Example Structure:
|
|
22
|
+
```css
|
|
23
|
+
/* Navbar styles */
|
|
24
|
+
.navbar { }
|
|
25
|
+
```
|
|
26
|
+
|
|
27
|
+
### Basic Structure
|
|
28
|
+
|
|
29
|
+
Main classes within the navbar:
|
|
30
|
+
- `.navbar` - The main top bar container
|
|
31
|
+
- `.v-btn` - Buttons (menu toggle, profile button)
|
|
32
|
+
- `.profile` - User profile avatar
|
|
33
|
+
- `.toolbar-menu-item` - User dropdown menu
|
|
34
|
+
- `.v-list-item` - Menu items in dropdown
|
|
35
|
+
|
|
36
|
+
### Common Customizations
|
|
37
|
+
|
|
38
|
+
### 1. Change Navbar Background Color
|
|
39
|
+
|
|
40
|
+
```css
|
|
41
|
+
/* Navbar background - use ::before for proper override */
|
|
42
|
+
.navbar::before {
|
|
43
|
+
/* --- those are required for background to be applied --- */
|
|
44
|
+
content: "";
|
|
45
|
+
position: absolute;
|
|
46
|
+
top: 0;
|
|
47
|
+
left: 0;
|
|
48
|
+
width: 100%;
|
|
49
|
+
height: 100%;
|
|
50
|
+
/* ------ */
|
|
51
|
+
background-color: #1c4bd5 !important; /* Desired color here (Should be a dark color, since all texts are white) */
|
|
52
|
+
}
|
|
53
|
+
```
|
|
54
|
+
|
|
55
|
+
### 2. Change Navbar border
|
|
56
|
+
|
|
57
|
+
```css
|
|
58
|
+
.navbar {
|
|
59
|
+
border-bottom: 2px solid #e0e0e0 !important;
|
|
60
|
+
}
|
|
61
|
+
```
|
|
62
|
+
|
|
63
|
+
### 3. Customize Profile Name Text
|
|
64
|
+
|
|
65
|
+
```css
|
|
66
|
+
/* Profile name styling */
|
|
67
|
+
.navbar .v-btn span {
|
|
68
|
+
color: #333333 !important;
|
|
69
|
+
font-size: 15px !important;
|
|
70
|
+
font-weight: 600 !important;
|
|
71
|
+
}
|
|
72
|
+
```
|
|
73
|
+
|
|
74
|
+
### 4. Customize Profile Avatar
|
|
75
|
+
|
|
76
|
+
```css
|
|
77
|
+
/* Avatar border/styling */
|
|
78
|
+
.navbar .profile {
|
|
79
|
+
border: 2px solid #1976d2 !important;
|
|
80
|
+
}
|
|
81
|
+
```
|
|
82
|
+
|
|
83
|
+
### 5. Customize Sidebar Toggle Button
|
|
84
|
+
|
|
85
|
+
```css
|
|
86
|
+
/* Sidebar toggle button color */
|
|
87
|
+
.navbar .v-btn .v-icon {
|
|
88
|
+
color: #333333 !important;
|
|
89
|
+
}
|
|
90
|
+
|
|
91
|
+
/* Sidebar toggle button on hover */
|
|
92
|
+
.navbar .v-btn:hover {
|
|
93
|
+
background-color: rgba(0, 0, 0, 0.05) !important;
|
|
94
|
+
}
|
|
95
|
+
```
|
|
96
|
+
|
|
97
|
+
### 6. Customize Dropdown Menu
|
|
98
|
+
|
|
99
|
+
```css
|
|
100
|
+
/* Dropdown menu background */
|
|
101
|
+
.navbar .toolbar-menu-item .v-list {
|
|
102
|
+
background-color: #ffffff !important;
|
|
103
|
+
}
|
|
104
|
+
|
|
105
|
+
/* Dropdown menu items */
|
|
106
|
+
.navbar .v-list-item {
|
|
107
|
+
color: #333333 !important;
|
|
108
|
+
}
|
|
109
|
+
|
|
110
|
+
/* Dropdown menu items on hover */
|
|
111
|
+
.navbar .v-list-item:hover {
|
|
112
|
+
background-color: #f5f5f5 !important;
|
|
113
|
+
}
|
|
114
|
+
|
|
115
|
+
/* Dropdown menu item titles */
|
|
116
|
+
.navbar .v-list-item-title {
|
|
117
|
+
font-size: 14px !important;
|
|
118
|
+
font-weight: 400 !important;
|
|
119
|
+
}
|
|
120
|
+
```
|
|
121
|
+
|
|
122
|
+
### 7. Customize Icons Color
|
|
123
|
+
|
|
124
|
+
```css
|
|
125
|
+
/* All icons in navbar */
|
|
126
|
+
.navbar .v-icon {
|
|
127
|
+
color: #555555 !important;
|
|
128
|
+
}
|
|
129
|
+
|
|
130
|
+
/* Icons in dropdown menu */
|
|
131
|
+
.navbar .v-list-item .v-icon {
|
|
132
|
+
color: #666666 !important;
|
|
133
|
+
}
|
|
134
|
+
```
|
|
135
|
+
|
|
136
|
+
### 8. Add Gradient Background
|
|
137
|
+
|
|
138
|
+
```css
|
|
139
|
+
/* Gradient navbar background */
|
|
140
|
+
.navbar::before {
|
|
141
|
+
background: linear-gradient(90deg, #667eea 0%, #764ba2 100%) !important;
|
|
142
|
+
}
|
|
143
|
+
|
|
144
|
+
/* Adjust text colors for gradient */
|
|
145
|
+
.navbar .v-btn span,
|
|
146
|
+
.navbar .v-icon {
|
|
147
|
+
color: white !important;
|
|
148
|
+
}
|
|
149
|
+
```
|
|
150
|
+
|
|
151
|
+
### 9. Navbar Height
|
|
152
|
+
|
|
153
|
+
- **Do not change the height**, it is not customizable
|
|
154
|
+
|
|
155
|
+
### Tips
|
|
156
|
+
- **Always** start selectors with `.navbar`
|
|
157
|
+
- Use `.navbar::before` for background color changes
|
|
158
|
+
- Always use `!important` to override defaults
|
|
159
|
+
- Keep contrast ratios accessible
|
|
160
|
+
- Keep in mind that all Vuetify elements used are in dark mode, so most of the texts color is white
|
|
161
|
+
|
|
162
|
+
## Sidebar Customization Guide
|
|
163
|
+
|
|
164
|
+
This guide will help you customize the sidebar appearance using CSS. Add your custom CSS to your theme or style settings.
|
|
165
|
+
|
|
166
|
+
### Important: CSS Selector Rules
|
|
167
|
+
|
|
168
|
+
**All your custom CSS must start with one of these selectors:**
|
|
169
|
+
|
|
170
|
+
- `.sidebar` - Applies to sidebar in all states
|
|
171
|
+
- `.sidebar:not(.v-navigation-drawer--is-mouseover)` - Only applies when sidebar is collapsed/minimized
|
|
172
|
+
- `.sidebar.v-navigation-drawer--is-mouseover` - Only applies when sidebar is expanded/full width
|
|
173
|
+
|
|
174
|
+
#### Example Structure:
|
|
175
|
+
```css
|
|
176
|
+
/* Applies always */
|
|
177
|
+
.sidebar { }
|
|
178
|
+
|
|
179
|
+
/* Only when sidebar is minimized */
|
|
180
|
+
.sidebar:not(.v-navigation-drawer--is-mouseover) { }
|
|
181
|
+
|
|
182
|
+
/* Only when sidebar is expanded */
|
|
183
|
+
.sidebar.v-navigation-drawer--is-mouseover { }
|
|
184
|
+
```
|
|
185
|
+
|
|
186
|
+
### Sidebar States
|
|
187
|
+
|
|
188
|
+
The sidebar has two states:
|
|
189
|
+
|
|
190
|
+
1. **Expanded** (`.sidebar.v-navigation-drawer--is-mouseover`) - Full sidebar showing text and icons
|
|
191
|
+
2. **Minimized** (`.sidebar:not(.v-navigation-drawer--is-mouseover)`) - Collapsed sidebar showing only icons
|
|
192
|
+
|
|
193
|
+
### Basic Structure
|
|
194
|
+
|
|
195
|
+
Main classes within the sidebar:
|
|
196
|
+
- `.v-list-item` - Menu items
|
|
197
|
+
- `.v-list-item--active` - Active/selected menu item
|
|
198
|
+
- `.sidebar-menu-subitem` - Submenu items
|
|
199
|
+
- `.v-toolbar` - Top bar (logo area) || it is better **not to make a background color change** for this, since the sidebar background color is already under it
|
|
200
|
+
|
|
201
|
+
### Common Customizations
|
|
202
|
+
|
|
203
|
+
#### 1. Change Sidebar Background Color
|
|
204
|
+
- **IMPORTANT:** The background color should be dark, since it's content is light
|
|
205
|
+
|
|
206
|
+
```css
|
|
207
|
+
/* Light theme sidebar - all states */
|
|
208
|
+
.sidebar::before {
|
|
209
|
+
background-color: #1b42eeff !important;
|
|
210
|
+
} /* As you can see, the sidebar background color is changable from ::before */
|
|
211
|
+
```
|
|
212
|
+
|
|
213
|
+
#### 2. Change Active Item Color
|
|
214
|
+
|
|
215
|
+
```css
|
|
216
|
+
/* Active menu item text color */
|
|
217
|
+
.sidebar .v-list-item--active .v-list-item__title {
|
|
218
|
+
color: #ff6b6b !important;
|
|
219
|
+
font-weight: bold;
|
|
220
|
+
}
|
|
221
|
+
|
|
222
|
+
/* Active menu item icon color */
|
|
223
|
+
.sidebar .v-list-item--active .v-icon {
|
|
224
|
+
color: #ff6b6b !important;
|
|
225
|
+
}
|
|
226
|
+
|
|
227
|
+
/* Active item in expanded sidebar only */
|
|
228
|
+
.sidebar.v-navigation-drawer--is-mouseover .v-list-item--active {
|
|
229
|
+
border-left: 4px solid #ff6b6b;
|
|
230
|
+
}
|
|
231
|
+
```
|
|
232
|
+
|
|
233
|
+
#### 3. Customize Menu Item Hover Effect
|
|
234
|
+
|
|
235
|
+
```css
|
|
236
|
+
/* Hover effect - all states */
|
|
237
|
+
.sidebar .v-list-item:hover {
|
|
238
|
+
background-color: rgba(0, 0, 0, 0.05) !important;
|
|
239
|
+
}
|
|
240
|
+
|
|
241
|
+
/* Different hover for minimized state */
|
|
242
|
+
.sidebar:not(.v-navigation-drawer--is-mouseover) .v-list-item:hover {
|
|
243
|
+
background-color: rgba(0, 0, 0, 0.1) !important;
|
|
244
|
+
}
|
|
245
|
+
```
|
|
246
|
+
|
|
247
|
+
#### 4. Change Top Bar (Logo Area) Colors
|
|
248
|
+
|
|
249
|
+
```css
|
|
250
|
+
/* Top toolbar background */
|
|
251
|
+
.sidebar .v-toolbar {
|
|
252
|
+
background-color: #1c4bd5 !important; /* (ONLY WHEN NEEDED) Better not change the background color, for more stylized sidebar, set a background for the whole sidebar::before instead */
|
|
253
|
+
}
|
|
254
|
+
|
|
255
|
+
/* App name text color */
|
|
256
|
+
.sidebar .toolbar .text {
|
|
257
|
+
color: white !important;
|
|
258
|
+
}
|
|
259
|
+
|
|
260
|
+
/* Hide logo when minimized */
|
|
261
|
+
.sidebar:not(.v-navigation-drawer--is-mouseover) .wide-logo-img {
|
|
262
|
+
opacity: 0.7;
|
|
263
|
+
}
|
|
264
|
+
```
|
|
265
|
+
|
|
266
|
+
#### 5. Customize Submenu Items
|
|
267
|
+
|
|
268
|
+
```css
|
|
269
|
+
/* Submenu background - only visible in expanded state */
|
|
270
|
+
.sidebar.v-navigation-drawer--is-mouseover .sidebar-menu-subitem {
|
|
271
|
+
background-color: #fafafa !important;
|
|
272
|
+
/* Do not change margins/transform:translate to do not break the layout */
|
|
273
|
+
}
|
|
274
|
+
|
|
275
|
+
/* Active submenu item */
|
|
276
|
+
.sidebar .sidebar-menu-subitem.v-list-item--active {
|
|
277
|
+
background-color: #e3f2fd !important;
|
|
278
|
+
border-left: 3px solid #2196f3;
|
|
279
|
+
/* Do not change margins/transform:translate to do not break the layout */
|
|
280
|
+
}
|
|
281
|
+
```
|
|
282
|
+
|
|
283
|
+
#### 6. Change Font Sizes
|
|
284
|
+
|
|
285
|
+
```css
|
|
286
|
+
/* Main menu items */
|
|
287
|
+
.sidebar .v-list-item-title {
|
|
288
|
+
font-size: 16px !important;
|
|
289
|
+
font-weight: 400 !important;
|
|
290
|
+
}
|
|
291
|
+
|
|
292
|
+
/* Smaller font when minimized (shown on hover) */
|
|
293
|
+
.sidebar:not(.v-navigation-drawer--is-mouseover) .v-list-item-title {
|
|
294
|
+
font-size: 14px !important;
|
|
295
|
+
}
|
|
296
|
+
|
|
297
|
+
/* App name */
|
|
298
|
+
.sidebar .toolbar .text {
|
|
299
|
+
font-size: 24px !important;
|
|
300
|
+
}
|
|
301
|
+
```
|
|
302
|
+
|
|
303
|
+
#### 7. Width Customization
|
|
304
|
+
|
|
305
|
+
- **Do not change the width**, it is not customizable
|
|
306
|
+
|
|
307
|
+
### Tips
|
|
308
|
+
- **Always** start selectors with `.sidebar`
|
|
309
|
+
- Use `.sidebar:not(.v-navigation-drawer--is-mouseover)` for minimized state styles
|
|
310
|
+
- Use `.sidebar.v-navigation-drawer--is-mouseover` for expanded state styles
|
|
311
|
+
- Always use `!important` to override defaults
|
|
312
|
+
- Keep contrast ratios accessible
|
|
313
|
+
- Keep in mind that all Vuetify elements used are in dark mode, so most of the texts color is white
|