slicejs-web-framework 1.0.17 → 1.0.19

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 CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "slicejs-web-framework",
3
- "version": "1.0.17",
3
+ "version": "1.0.19",
4
4
  "description": "",
5
5
  "engines": {
6
6
  "node": ">=20"
@@ -1,6 +1,7 @@
1
1
  slice-the-build-method {
2
2
  font-family: var(--font-family);
3
3
  color: var(--font-primary-color);
4
+ display: block;
4
5
  }
5
6
 
6
7
  slice-the-build-method .build-method-container {
@@ -9,107 +10,266 @@ slice-the-build-method .build-method-container {
9
10
  padding: 20px;
10
11
  }
11
12
 
13
+ slice-the-build-method .build-method-header {
14
+ display: flex;
15
+ align-items: center;
16
+ margin-bottom: 1.5rem;
17
+ }
18
+
12
19
  slice-the-build-method h1 {
13
20
  font-size: 2.2rem;
14
- margin-bottom: 1.5rem;
15
21
  color: var(--primary-color);
16
22
  border-bottom: 2px solid var(--secondary-background-color);
17
23
  padding-bottom: 0.5rem;
24
+ margin-right: 1rem;
25
+ margin-bottom: 0;
26
+ flex-grow: 1;
27
+ }
28
+
29
+ slice-the-build-method .build-method-badge {
30
+ background-color: var(--primary-color);
31
+ color: var(--primary-color-contrast);
32
+ padding: 6px 12px;
33
+ border-radius: 20px;
34
+ font-size: 0.9rem;
35
+ font-weight: bold;
18
36
  }
19
37
 
20
38
  slice-the-build-method h2 {
21
39
  font-size: 1.8rem;
22
- margin-top: 2rem;
23
- margin-bottom: 1rem;
40
+ margin-top: 2.5rem;
41
+ margin-bottom: 1.2rem;
24
42
  color: var(--primary-color);
43
+ position: relative;
44
+ padding-left: 1rem;
45
+ }
46
+
47
+ slice-the-build-method h2:before {
48
+ content: "";
49
+ position: absolute;
50
+ left: 0;
51
+ height: 100%;
52
+ width: 4px;
53
+ background-color: var(--primary-color);
54
+ border-radius: 4px;
25
55
  }
26
56
 
27
57
  slice-the-build-method h3 {
28
58
  font-size: 1.5rem;
29
- margin-top: 1.5rem;
30
- margin-bottom: 0.75rem;
59
+ margin-top: 1.8rem;
60
+ margin-bottom: 1rem;
31
61
  color: var(--font-primary-color);
32
62
  }
33
63
 
34
64
  slice-the-build-method p {
35
- margin-bottom: 1rem;
36
- line-height: 1.6;
65
+ margin-bottom: 1.2rem;
66
+ line-height: 1.7;
37
67
  text-align: justify;
68
+ font-size: 1.05rem;
38
69
  }
39
70
 
40
71
  slice-the-build-method code {
41
72
  font-family: monospace;
42
73
  background-color: var(--secondary-background-color);
43
- padding: 2px 5px;
74
+ padding: 3px 6px;
44
75
  border-radius: 4px;
45
- font-size: 0.9em;
76
+ font-size: 0.95em;
77
+ color: var(--primary-color);
46
78
  }
47
79
 
48
80
  slice-the-build-method .syntax-box {
49
81
  background-color: var(--secondary-background-color);
50
- padding: 15px;
82
+ padding: 20px;
51
83
  border-radius: var(--border-radius-slice);
52
84
  margin: 20px 0;
53
85
  overflow-x: auto;
86
+ border-left: 4px solid var(--primary-color);
87
+ box-shadow: 0 3px 6px rgba(0, 0, 0, 0.1);
88
+ transition: transform 0.2s ease;
89
+ }
90
+
91
+ slice-the-build-method .syntax-box:hover {
92
+ transform: translateY(-2px);
54
93
  }
55
94
 
56
95
  slice-the-build-method .syntax-box code {
57
- font-size: 1.1em;
96
+ font-size: 1.2em;
58
97
  background: none;
59
98
  }
60
99
 
61
- slice-the-build-method .parameters-list,
62
- slice-the-build-method .best-practices-list,
63
- slice-the-build-method .lifecycle-steps {
64
- margin-left: 20px;
65
- margin-bottom: 1.5rem;
66
- line-height: 1.6;
100
+ slice-the-build-method .parameters-section,
101
+ slice-the-build-method .return-section {
102
+ background-color: var(--primary-background-color);
103
+ padding: 15px 20px;
104
+ border-radius: var(--border-radius-slice);
105
+ margin: 15px 0;
106
+ border: 1px solid var(--secondary-background-color);
67
107
  }
68
108
 
69
- slice-the-build-method .parameters-list li,
70
- slice-the-build-method .best-practices-list li,
71
- slice-the-build-method .lifecycle-steps li {
72
- margin-bottom: 0.75rem;
109
+ slice-the-build-method .parameters-list {
110
+ list-style: none;
111
+ margin: 0;
112
+ padding: 0;
73
113
  }
74
114
 
115
+ slice-the-build-method .parameters-list li {
116
+ display: grid;
117
+ grid-template-columns: 1fr 1fr 3fr;
118
+ gap: 15px;
119
+ margin-bottom: 12px;
120
+ padding-bottom: 12px;
121
+ border-bottom: 1px solid var(--secondary-background-color);
122
+ }
75
123
 
76
- slice-the-build-method .lifecycle-steps li {
77
- counter-increment: step-counter;
78
- position: relative;
79
- padding-left: 10px;
124
+ slice-the-build-method .parameters-list li:last-child {
125
+ border-bottom: none;
126
+ margin-bottom: 0;
127
+ padding-bottom: 0;
80
128
  }
81
129
 
82
- slice-the-build-method .lifecycle-steps li::before {
130
+ slice-the-build-method .param-name {
83
131
  font-weight: bold;
84
- margin-right: 8px;
132
+ color: var(--primary-color);
133
+ }
134
+
135
+ slice-the-build-method .param-type {
136
+ font-style: italic;
137
+ color: var(--font-secondary-color);
138
+ }
139
+
140
+ slice-the-build-method .example-card {
141
+ background-color: var(--primary-background-color);
142
+ border-radius: var(--border-radius-slice);
143
+ padding: 20px;
144
+ margin-bottom: 30px;
145
+ border: 1px solid var(--secondary-background-color);
146
+ box-shadow: 0 4px 8px rgba(0, 0, 0, 0.05);
147
+ transition: box-shadow 0.3s ease;
148
+ }
149
+
150
+ slice-the-build-method .example-card:hover {
151
+ box-shadow: 0 6px 12px rgba(0, 0, 0, 0.1);
152
+ }
153
+
154
+ slice-the-build-method .example-card h3 {
155
+ margin-top: 0;
85
156
  color: var(--primary-color);
86
157
  }
87
158
 
88
159
  slice-the-build-method .method-examples div[class$="-container"] {
89
- margin-bottom: 2rem;
160
+ margin-top: 1rem;
90
161
  border-radius: var(--border-radius-slice);
91
162
  overflow: hidden;
92
163
  }
93
164
 
165
+ slice-the-build-method .lifecycle-diagram {
166
+ background-color: var(--primary-background-color);
167
+ border-radius: var(--border-radius-slice);
168
+ padding: 20px;
169
+ border: 1px solid var(--secondary-background-color);
170
+ }
171
+
172
+ slice-the-build-method .lifecycle-steps {
173
+ list-style: none;
174
+ margin: 0;
175
+ padding: 0;
176
+ }
177
+
178
+ slice-the-build-method .lifecycle-steps li {
179
+ display: flex;
180
+ align-items: center;
181
+ margin-bottom: 15px;
182
+ padding-bottom: 15px;
183
+ border-bottom: 1px dashed var(--secondary-background-color);
184
+ }
185
+
186
+ slice-the-build-method .lifecycle-steps li:last-child {
187
+ margin-bottom: 0;
188
+ padding-bottom: 0;
189
+ border-bottom: none;
190
+ }
191
+
192
+ slice-the-build-method .step-number {
193
+ display: flex;
194
+ align-items: center;
195
+ justify-content: center;
196
+ width: 30px;
197
+ height: 30px;
198
+ background-color: var(--primary-color);
199
+ color: var(--primary-color-contrast);
200
+ border-radius: 50%;
201
+ margin-right: 15px;
202
+ font-weight: bold;
203
+ flex-shrink: 0;
204
+ }
205
+
206
+ slice-the-build-method .step-content {
207
+ flex-grow: 1;
208
+ line-height: 1.5;
209
+ }
210
+
211
+ slice-the-build-method .best-practices-container {
212
+ background-color: var(--primary-background-color);
213
+ border-radius: var(--border-radius-slice);
214
+ padding: 20px;
215
+ border: 1px solid var(--secondary-background-color);
216
+ }
217
+
218
+ slice-the-build-method .best-practices-list {
219
+ list-style: none;
220
+ margin: 0;
221
+ padding: 0;
222
+ }
223
+
224
+ slice-the-build-method .best-practices-list li {
225
+ display: flex;
226
+ align-items: flex-start;
227
+ margin-bottom: 15px;
228
+ line-height: 1.6;
229
+ }
230
+
231
+ slice-the-build-method .best-practices-list li:last-child {
232
+ margin-bottom: 0;
233
+ }
234
+
235
+ slice-the-build-method .practice-icon {
236
+ display: inline-block;
237
+ margin-right: 10px;
238
+ color: var(--success-color);
239
+ font-weight: bold;
240
+ font-size: 1.2rem;
241
+ }
242
+
243
+ slice-the-build-method .method-introduction,
94
244
  slice-the-build-method .method-syntax,
95
245
  slice-the-build-method .method-examples,
96
246
  slice-the-build-method .method-lifecycle,
97
247
  slice-the-build-method .method-best-practices {
98
- margin-bottom: 3rem;
248
+ margin-bottom: 3.5rem;
99
249
  }
100
250
 
101
251
  slice-the-build-method section {
102
- padding-top: 10px;
252
+ padding-top: 15px;
103
253
  }
104
254
 
105
255
  @media only screen and (max-width: 770px) {
106
256
  slice-the-build-method .build-method-container {
107
257
  max-width: 100%;
108
- padding: 10px;
258
+ padding: 15px;
259
+ }
260
+
261
+ slice-the-build-method .build-method-header {
262
+ flex-direction: column;
263
+ align-items: flex-start;
264
+ }
265
+
266
+ slice-the-build-method .build-method-badge {
267
+ margin-top: 10px;
109
268
  }
110
269
 
111
270
  slice-the-build-method h1 {
112
271
  font-size: 1.8rem;
272
+ margin-right: 0;
113
273
  }
114
274
 
115
275
  slice-the-build-method h2 {
@@ -119,4 +279,18 @@ slice-the-build-method section {
119
279
  slice-the-build-method h3 {
120
280
  font-size: 1.3rem;
121
281
  }
282
+
283
+ slice-the-build-method .parameters-list li {
284
+ grid-template-columns: 1fr;
285
+ gap: 5px;
286
+ }
287
+
288
+ slice-the-build-method .lifecycle-steps li {
289
+ flex-direction: column;
290
+ align-items: flex-start;
291
+ }
292
+
293
+ slice-the-build-method .step-number {
294
+ margin-bottom: 10px;
295
+ }
122
296
  }
@@ -1,5 +1,8 @@
1
1
  <div class="build-method-container">
2
- <h1 id="build-method">The Build Method</h1>
2
+ <div class="build-method-header">
3
+ <h1 id="build-method">The Build Method</h1>
4
+ <div class="build-method-badge">Core API</div>
5
+ </div>
3
6
 
4
7
  <section class="method-introduction">
5
8
  <p>
@@ -12,59 +15,75 @@
12
15
  <div class="syntax-box">
13
16
  <code>await slice.build(componentName, props);</code>
14
17
  </div>
15
- <h3>Parameters</h3>
16
- <ul class="parameters-list">
17
- <li><strong>componentName</strong>: <em>string</em> - The name of the component to build as registered in components.js</li>
18
- <li><strong>props</strong>: <em>object</em> - (Optional) An object containing properties to set on the component</li>
19
- </ul>
20
- <h3>Return Value</h3>
21
- <p>A Promise that resolves to the constructed component instance, or null if construction fails.</p>
18
+ <div class="parameters-section">
19
+ <h3>Parameters</h3>
20
+ <ul class="parameters-list">
21
+ <li><div class="param-name">componentName</div><div class="param-type">string</div><div class="param-description">The name of the component to build as registered in components.js</div></li>
22
+ <li><div class="param-name">props</div><div class="param-type">object</div><div class="param-description">(Optional) An object containing properties to set on the component</div></li>
23
+ </ul>
24
+ </div>
25
+ <div class="return-section">
26
+ <h3>Return Value</h3>
27
+ <p>A Promise that resolves to the constructed component instance, or null if construction fails.</p>
28
+ </div>
22
29
  </section>
23
30
 
24
31
  <section class="method-examples">
25
32
  <h2 id="examples">Examples</h2>
26
33
 
27
- <h3 id="basic-usage">Basic Usage</h3>
28
- <p>Creating a simple button component and adding it to the DOM:</p>
29
- <div class="basic-example-container"></div>
34
+ <div class="example-card">
35
+ <h3 id="basic-usage">Basic Usage</h3>
36
+ <p>Creating a simple button component and adding it to the DOM:</p>
37
+ <div class="basic-example-container"></div>
38
+ </div>
30
39
 
31
- <h3 id="advanced-props">Advanced Properties</h3>
32
- <p>Building a component with more complex properties:</p>
33
- <div class="advanced-example-container"></div>
40
+ <div class="example-card">
41
+ <h3 id="advanced-props">Advanced Properties</h3>
42
+ <p>Building a component with more complex properties:</p>
43
+ <div class="advanced-example-container"></div>
44
+ </div>
34
45
 
35
- <h3 id="nested-components">Building Nested Components</h3>
36
- <p>Creating a structure of components that contain other components:</p>
37
- <div class="nested-components-container"></div>
46
+ <div class="example-card">
47
+ <h3 id="nested-components">Building Nested Components</h3>
48
+ <p>Creating a structure of components that contain other components:</p>
49
+ <div class="nested-components-container"></div>
50
+ </div>
38
51
 
39
- <h3 id="error-handling">Error Handling</h3>
40
- <p>Proper error handling when building components:</p>
41
- <div class="error-handling-container"></div>
52
+ <div class="example-card">
53
+ <h3 id="error-handling">Error Handling</h3>
54
+ <p>Proper error handling when building components:</p>
55
+ <div class="error-handling-container"></div>
56
+ </div>
42
57
  </section>
43
58
 
44
59
  <section class="method-lifecycle">
45
60
  <h2 id="build-lifecycle">Build Lifecycle</h2>
46
61
  <p>When <code>slice.build()</code> is called, the following steps occur:</p>
47
- <ol class="lifecycle-steps">
48
- <li>Verify that the component exists in the component registry</li>
49
- <li>Load the component's template (HTML) if not already cached</li>
50
- <li>Load the component's class (JS) if not already cached</li>
51
- <li>Load the component's styles (CSS) if not already cached</li>
52
- <li>Create an instance of the component with the provided properties</li>
53
- <li>Call the component's <code>init()</code> method if it exists</li>
54
- <li>Attach debug mode if enabled in configuration</li>
55
- <li>Register the component in the controller's active components registry</li>
56
- <li>Return the fully initialized component instance</li>
57
- </ol>
62
+ <div class="lifecycle-diagram">
63
+ <ol class="lifecycle-steps">
64
+ <li><div class="step-number">1</div><div class="step-content">Verify that the component exists in the component registry</div></li>
65
+ <li><div class="step-number">2</div><div class="step-content">Load the component's template (HTML) if not already cached</div></li>
66
+ <li><div class="step-number">3</div><div class="step-content">Load the component's class (JS) if not already cached</div></li>
67
+ <li><div class="step-number">4</div><div class="step-content">Load the component's styles (CSS) if not already cached</div></li>
68
+ <li><div class="step-number">5</div><div class="step-content">Create an instance of the component with the provided properties</div></li>
69
+ <li><div class="step-number">6</div><div class="step-content">Call the component's <code>init()</code> method if it exists</div></li>
70
+ <li><div class="step-number">7</div><div class="step-content">Attach debug mode if enabled in configuration</div></li>
71
+ <li><div class="step-number">8</div><div class="step-content">Register the component in the controller's active components registry</div></li>
72
+ <li><div class="step-number">9</div><div class="step-content">Return the fully initialized component instance</div></li>
73
+ </ol>
74
+ </div>
58
75
  </section>
59
76
 
60
77
  <section class="method-best-practices">
61
78
  <h2 id="best-practices">Best Practices</h2>
62
- <ul class="best-practices-list">
63
- <li>Always use <code>await</code> with <code>slice.build()</code> since it returns a Promise</li>
64
- <li>Provide a unique <code>sliceId</code> for components that need to be referenced later</li>
65
- <li>Implement proper error handling around component building</li>
66
- <li>Use the component's <code>init()</code> method for additional setup rather than the constructor</li>
67
- <li>Remember that component properties are set after construction but before initialization</li>
68
- </ul>
79
+ <div class="best-practices-container">
80
+ <ul class="best-practices-list">
81
+ <li><span class="practice-icon">✓</span> Always use <code>await</code> with <code>slice.build()</code> since it returns a Promise</li>
82
+ <li><span class="practice-icon">✓</span> Provide a unique <code>sliceId</code> for components that need to be referenced later</li>
83
+ <li><span class="practice-icon">✓</span> Implement proper error handling around component building</li>
84
+ <li><span class="practice-icon">✓</span> Use the component's <code>init()</code> method for additional setup rather than the constructor</li>
85
+ <li><span class="practice-icon">✓</span> Remember that component properties are set after construction but before initialization</li>
86
+ </ul>
87
+ </div>
69
88
  </section>
70
89
  </div>
@@ -1,23 +1,208 @@
1
1
  .slice_team {
2
+ display: flex;
3
+ flex-direction: column;
4
+ align-items: center;
5
+ width: 100%;
6
+ }
7
+
8
+ .slice_team_hero {
9
+ position: relative;
10
+ width: 100%;
11
+ height: 300px;
12
+ display: flex;
13
+ flex-direction: column;
14
+ justify-content: center;
15
+ align-items: center;
16
+ margin-top: 60px;
17
+ background: linear-gradient(135deg, var(--primary-color), var(--secondary-color));
18
+ color: var(--primary-color-contrast);
19
+ text-align: center;
20
+ overflow: hidden;
21
+ }
22
+
23
+ .hero_overlay {
24
+ position: absolute;
25
+ top: 0;
26
+ left: 0;
27
+ width: 100%;
28
+ height: 100%;
29
+ background-image: url("data:image/svg+xml,%3Csvg width='60' height='60' viewBox='0 0 60 60' xmlns='http://www.w3.org/2000/svg'%3E%3Cg fill='none' fill-rule='evenodd'%3E%3Cg fill='%23ffffff' fill-opacity='0.1'%3E%3Cpath d='M36 34v-4h-2v4h-4v2h4v4h2v-4h4v-2h-4zm0-30V0h-2v4h-4v2h4v4h2V6h4V4h-4zM6 34v-4H4v4H0v2h4v4h2v-4h4v-2H6zM6 4V0H4v4H0v2h4v4h2V6h4V4H6z'/%3E%3C/g%3E%3C/g%3E%3C/svg%3E");
30
+ opacity: 0.3;
31
+ }
32
+
33
+ .slice_team_hero h1 {
34
+ font-size: 2.5rem;
35
+ margin-bottom: 1rem;
36
+ z-index: 1;
37
+ text-shadow: 0 2px 4px rgba(0,0,0,0.2);
38
+ animation: fadeIn 1s ease-in-out;
39
+ }
40
+
41
+ .slice_team_hero p {
42
+ font-size: 1.2rem;
43
+ z-index: 1;
44
+ max-width: 600px;
45
+ animation: fadeIn 1s ease-in-out 0.3s both;
46
+ }
47
+
48
+ .slice_team_content {
2
49
  display: flex;
3
50
  flex-direction: column;
4
51
  align-items: center;
5
52
  padding: 2rem;
6
- margin-top: 80px; /* Ajusta este valor según la altura de tu navbar */
7
53
  width: 100%;
54
+ max-width: 1200px;
8
55
  }
9
56
 
10
57
  .slice_team_title {
11
58
  font-size: 2rem;
12
59
  color: var(--font-primary-color);
13
- margin-bottom: 1rem;
60
+ margin: 2rem 0;
14
61
  text-align: center;
62
+ position: relative;
63
+ }
64
+
65
+ .slice_team_title::after {
66
+ content: '';
67
+ position: absolute;
68
+ width: 50px;
69
+ height: 3px;
70
+ background-color: var(--primary-color);
71
+ bottom: -10px;
72
+ left: 50%;
73
+ transform: translateX(-50%);
15
74
  }
16
75
 
17
76
  .slice_team_container {
18
77
  display: flex;
19
- flex-direction: column; /* Cambiado para que estén en columna */
20
- align-items: center; /* Centrar las tarjetas */
21
- gap: 1.5rem;
78
+ flex-direction: column;
79
+ align-items: center;
80
+ gap: 2rem;
81
+ width: 100%;
82
+ }
83
+
84
+ slice-team-card {
85
+ opacity: 0;
86
+ animation: fadeInUp 0.8s ease-out forwards;
87
+ animation-delay: calc(var(--animation-order, 0) * 0.2s);
88
+ }
89
+
90
+ .slice_special_thanks {
91
+ margin: 4rem 0;
92
+ padding: 2rem;
93
+ background-color: var(--secondary-background-color);
94
+ border-radius: 10px;
95
+ width: 90%;
96
+ max-width: 800px;
97
+ box-shadow: 0 8px 20px rgba(0,0,0,0.1);
98
+ transform: translateY(20px);
99
+ opacity: 0;
100
+ animation: fadeInUp 0.8s ease-out forwards;
101
+ animation-delay: 0.6s;
102
+ }
103
+
104
+ .special_thanks_content {
105
+ text-align: center;
106
+ }
107
+
108
+ .special_thanks_content h3 {
109
+ font-size: 1.8rem;
110
+ color: var(--primary-color);
111
+ margin-bottom: 1.5rem;
112
+ }
113
+
114
+ .special_thanks_content p {
115
+ color: var(--font-primary-color);
116
+ line-height: 1.7;
117
+ text-align: center;
118
+ }
119
+
120
+ .special_thanks_content strong {
121
+ color: var(--primary-color);
122
+ font-weight: bold;
123
+ position: relative;
124
+ display: inline-block;
125
+ }
126
+
127
+ .special_thanks_content strong::after {
128
+ content: '';
129
+ position: absolute;
22
130
  width: 100%;
131
+ height: 2px;
132
+ background-color: var(--primary-color);
133
+ bottom: -2px;
134
+ left: 0;
135
+ transform: scaleX(0);
136
+ transform-origin: left;
137
+ transition: transform 0.3s ease;
138
+ }
139
+
140
+ .special_thanks_content:hover strong::after {
141
+ transform: scaleX(1);
23
142
  }
143
+
144
+ .slice_team_footer {
145
+ margin-top: 2rem;
146
+ text-align: center;
147
+ padding: 1rem;
148
+ width: 100%;
149
+ }
150
+
151
+ .slice_team_footer a {
152
+ color: var(--primary-color);
153
+ text-decoration: none;
154
+ font-weight: bold;
155
+ transition: color 0.3s ease;
156
+ }
157
+
158
+ .slice_team_footer a:hover {
159
+ text-decoration: underline;
160
+ }
161
+
162
+ @keyframes fadeIn {
163
+ from {
164
+ opacity: 0;
165
+ }
166
+ to {
167
+ opacity: 1;
168
+ }
169
+ }
170
+
171
+ @keyframes fadeInUp {
172
+ from {
173
+ opacity: 0;
174
+ transform: translateY(30px);
175
+ }
176
+ to {
177
+ opacity: 1;
178
+ transform: translateY(0);
179
+ }
180
+ }
181
+
182
+ /* Responsive styling */
183
+ @media only screen and (min-width: 768px) {
184
+ .slice_team_container {
185
+ flex-direction: row;
186
+ flex-wrap: wrap;
187
+ justify-content: center;
188
+ }
189
+
190
+ slice-team-card {
191
+ width: 45%;
192
+ }
193
+ }
194
+
195
+ @media only screen and (max-width: 767px) {
196
+ .slice_team_hero {
197
+ height: 250px;
198
+ padding: 1rem;
199
+ }
200
+
201
+ .slice_team_hero h1 {
202
+ font-size: 2rem;
203
+ }
204
+
205
+ .slice_special_thanks {
206
+ padding: 1.5rem;
207
+ }
208
+ }
@@ -1,6 +1,18 @@
1
- <div class="slice_team">
1
+ <div class="slice_team">
2
+ <div class="slice_team_hero">
3
+ <div class="hero_overlay"></div>
4
+ <h1>The Minds Behind Slice.js</h1>
5
+ <p>Meet the passionate developers who created this framework</p>
6
+ </div>
7
+
8
+ <div class="slice_team_content">
2
9
  <h2 class="slice_team_title">Our Team</h2>
3
10
  <div class="slice_team_container"></div>
4
- </div>
5
-
6
-
11
+
12
+ <div class="slice_special_thanks"></div>
13
+
14
+ <div class="slice_team_footer">
15
+ <p>Want to contribute? Join us on <a href="https://github.com/VKneider/slice.js" target="_blank">GitHub</a></p>
16
+ </div>
17
+ </div>
18
+ </div>
@@ -5,99 +5,66 @@ export default class TheSliceTeam extends HTMLElement {
5
5
 
6
6
  this.$container = this.querySelector('.slice_team_container');
7
7
  this.$title = this.querySelector('.slice_team_title');
8
+ this.$specialThanks = this.querySelector('.slice_special_thanks');
8
9
 
9
10
  slice.controller.setComponentProps(this, props);
10
11
  this.debuggerProps = ['members'];
11
12
  }
12
13
 
13
14
  async init() {
15
+ const navBar = await slice.build('Navbar', {
16
+ position: 'fixed',
17
+ logo: {
18
+ src: '/images/Slice.js-logo.png',
19
+ path: '/',
20
+ },
21
+ items: [
22
+ { text: 'Home', path: '/' },
23
+ { text: 'Documentation', path: '/Documentation' },
24
+ { text: 'Playground', path: '/Playground' },
25
+ { text: 'Our Team', path: '/Team' }
26
+ ],
27
+ buttons: [{
28
+ value: 'Change Theme',
29
+ onClickCallback: async () => {
30
+ let theme = slice.stylesManager.themeManager.currentTheme;
31
+ if (theme === 'Slice') await slice.setTheme('Light');
32
+ else if (theme === 'Light') await slice.setTheme('Dark');
33
+ else if (theme === 'Dark') await slice.setTheme('Slice');
34
+ },
35
+ }],
36
+ });
14
37
 
15
-
16
-
17
- const navBar = await slice.build('Navbar', {
18
- position: 'fixed',
19
- logo: {
20
- src: '/images/Slice.js-logo.png',
21
- path: '/',
22
- },
23
- items: [
24
- {
25
- text: 'Home',
26
- path: '/',
27
- },
28
- {
29
- text: 'Documentation',
30
- path: '/Documentation',
31
- },
32
- {
33
- text: 'Playground',
34
- path: '/Playground',
35
- },
36
- {
37
- text: 'Our Team',
38
- path: '/Team',
39
- }
40
-
41
- ],
42
- buttons: [
43
- {
44
- value: 'Change Theme',
45
- // color:
46
- onClickCallback: async () => {
47
-
48
- let theme = slice.stylesManager.themeManager.currentTheme;
49
- if (theme === 'Slice') {
50
- await slice.setTheme('Light');
51
- //theme = 'Light';
52
- } else if (theme === 'Light') {
53
- await slice.setTheme('Dark');
54
- //theme = 'Dark';
55
- } else if (theme === 'Dark') {
56
- await slice.setTheme('Slice');
57
- //theme = 'Slice';
58
- }
59
- },
60
- },
61
- ],
62
- });
63
-
64
-
65
- this.appendChild(navBar);
66
-
67
- const Victor = {
68
- name: "Victor Kneider",
69
- role: "Founder. Lead Developer. Software Architect.",
70
- image:"https://avatars.githubusercontent.com/u/103617388?v=4",
71
- description: "Computer Engineer passionate and ethusiast about technology and Component-Based Development. He is the creator of Slice.js and the main developer of the project.",
72
- links: [
73
- {label: "Github", href: "https://github.com/VKneider" },
74
- {label: "Linkedin", href:"https://www.linkedin.com/in/vkneider/"}
75
- ]
76
-
77
-
78
-
79
-
80
- }
81
-
82
-
83
- const Julio = {
84
- name: "Julio Graterol",
85
- role: "Frontend Developer. Visual Components Library Creator and Designer",
86
- image:"https://avatars.githubusercontent.com/u/99130732?v=4",
87
- //julio is a frontend developer and designer, he is the creator of the visual components library and the designer of the Slice.js logo and website.
88
- description: "Frontend Developer and Designer. He is the creator of the Visual Components Library and the designer of the Slice.js logo and website.",
89
- links: [
90
- {label: "Github", href: "https://github.com/juliograterol"},
91
- {label: "Linkedin", href:"https://www.linkedin.com/in/julio-graterol-187589289/"}
92
- ]
93
-
38
+ this.appendChild(navBar);
94
39
 
95
- }
96
-
97
- const members = [Victor, Julio];
98
-
99
- await this.addMembers(members);
40
+ // Team members data
41
+ const Victor = {
42
+ name: "Victor Kneider",
43
+ role: "Founder. Lead Developer. Software Architect.",
44
+ image: "https://avatars.githubusercontent.com/u/103617388?v=4",
45
+ description: "Computer Engineer and the principal creator of Slice.js. Victor architected the core framework, developed the structural components, implemented the router system, and designed the component lifecycle. He also created the documentation and maintains the repository, laying the groundwork for the entire framework ecosystem.",
46
+ links: [
47
+ {label: "Github", href: "https://github.com/VKneider" },
48
+ {label: "Linkedin", href: "https://www.linkedin.com/in/vkneider/"}
49
+ ]
50
+ };
51
+
52
+ const Julio = {
53
+ name: "Julio Graterol",
54
+ role: "Frontend Developer. Visual Components Library Creator and Designer",
55
+ image: "https://avatars.githubusercontent.com/u/99130732?v=4",
56
+ description: "Frontend Developer and Designer. He is the creator of the Visual Components Library and the designer of the Slice.js logo and website.",
57
+ links: [
58
+ {label: "Github", href: "https://github.com/juliograterol"},
59
+ {label: "Linkedin", href: "https://www.linkedin.com/in/julio-graterol-187589289/"}
60
+ ]
61
+ };
62
+
63
+ const members = [Victor, Julio];
64
+ await this.addMembers(members);
100
65
 
66
+ // Add special thanks section with animation
67
+ this.renderSpecialThanks();
101
68
  }
102
69
 
103
70
  async addMembers(members) {
@@ -117,6 +84,21 @@ export default class TheSliceTeam extends HTMLElement {
117
84
  this.$container.appendChild(card);
118
85
  }
119
86
 
87
+ renderSpecialThanks() {
88
+ const specialThanksContent = document.createElement('div');
89
+ specialThanksContent.className = 'special_thanks_content';
90
+ specialThanksContent.innerHTML = `
91
+ <h3>Special Thanks</h3>
92
+ <p>
93
+ Victor Kneider would like to express his deepest gratitude to <strong>Jubert Pérez</strong>
94
+ for being a constant source of motivation, support, and encouragement throughout
95
+ the development of the Slice.js framework. Your belief in this project and guidance
96
+ have been invaluable to its creation.
97
+ </p>
98
+ `;
99
+ this.$specialThanks.appendChild(specialThanksContent);
100
+ }
101
+
120
102
  get members() {
121
103
  return this._members;
122
104
  }
@@ -126,4 +108,4 @@ export default class TheSliceTeam extends HTMLElement {
126
108
  }
127
109
  }
128
110
 
129
- window.customElements.define('slice-team', TheSliceTeam);
111
+ window.customElements.define('slice-team', TheSliceTeam);
@@ -1,47 +1,47 @@
1
1
  :root {
2
2
  /* Tipografía */
3
- --font-primary-color: #6D2323; /* Rojo profundo para los textos principales */
4
- --font-secondary-color: #A31D1D; /* Rojo más intenso para destacar */
5
-
6
- /** Primary - Colores cálidos **/
7
- --primary-color: #A31D1D; /* Rojo oscuro pero sofisticado */
8
- --primary-color-rgb: 163, 29, 29;
9
- --primary-background-color: #FEF9E1; /* Beige suave para el fondo, cálido y acogedor */
10
- --primary-color-contrast: #ffffff; /* Contraste blanco para claridad */
11
- --primary-color-shade: #6D2323; /* Rojo más oscuro para énfasis */
12
-
13
- /** Secondary - Color cálido y elegante **/
14
- --secondary-color: #E5D0AC; /* Beige cálido y suave */
15
- --secondary-color-rgb: 229, 208, 172;
16
- --secondary-background-color: #FEF9E1; /* Fondo claro para resaltar los elementos */
17
- --secondary-color-contrast: #6D2323; /* Contraste con el rojo más oscuro */
18
-
19
- /** Tertiary - Colores neutros pero sofisticados **/
20
- --tertiary-background-color: #F5E0C7; /* Beige un poco más oscuro para balancear el diseño */
21
-
22
- /** Success - Verde suave para mensajes positivos **/
23
- --success-color: #4CAF50; /* Verde natural para dar un toque de frescura */
3
+ --font-primary-color: #2E1A47; /* Uva oscuro, elegante para lectura */
4
+ --font-secondary-color: #7D3AC1; /* Uva brillante para títulos y resaltes */
5
+
6
+ /** Primary - Uva intenso **/
7
+ --primary-color: #7D3AC1;
8
+ --primary-color-rgb: 125, 58, 193;
9
+ --primary-background-color: #F8F4FF; /* Lila muy claro como fondo principal */
10
+ --primary-color-contrast: #ffffff;
11
+ --primary-color-shade: #4E2279;
12
+
13
+ /** Secondary - Lima vibrante **/
14
+ --secondary-color: #C6FF00; /* Amarillo lima brillante, capta la atención */
15
+ --secondary-color-rgb: 198, 255, 0;
16
+ --secondary-background-color: #F9FFE1;
17
+ --secondary-color-contrast: #2E2E2E;
18
+
19
+ /** Tertiary - Turquesa suave **/
20
+ --tertiary-background-color: #D0F4F2; /* Fondo suave, fresco y moderno */
21
+
22
+ /** Success - Verde esmeralda claro **/
23
+ --success-color: #00B894;
24
24
  --success-contrast: #ffffff;
25
25
 
26
- /** Warning - Amarillo suave para advertencias sutiles **/
27
- --warning-color: #FFB74D;
28
- --warning-contrast: #4e342e;
26
+ /** Warning - Amarillo más tradicional pero suave **/
27
+ --warning-color: #FFD54F;
28
+ --warning-contrast: #3E2723;
29
29
 
30
- /** Danger - Rojo más suave para alertas pero no tan fuerte **/
31
- --danger-color: #6D2323; /* Rojo profundo para peligros o advertencias */
30
+ /** Danger - Coral vibrante (sin caer en rojo tradicional) **/
31
+ --danger-color: #FF6F61;
32
32
  --danger-contrast: #ffffff;
33
33
 
34
- /** Medium - Gris cálido para textos secundarios **/
35
- --medium-color: #A89F91;
34
+ /** Medium - Gris lavanda para texto secundario **/
35
+ --medium-color: #A89FB5;
36
36
  --medium-contrast: #000000;
37
37
 
38
- /* Disabled - Un color claro para elementos deshabilitados */
39
- --disabled-color: #E6E0B9;
38
+ /** Disabled - Gris pastel lavanda **/
39
+ --disabled-color: #E6E0F1;
40
40
 
41
- /** Accent - Un toque cálido y sutil **/
42
- --accent-color: #C75B5B;
41
+ /** Accent - Turquesa brillante para detalles elegantes **/
42
+ --accent-color: #00CFC1;
43
43
 
44
- /* Sombras suaves para dar profundidad */
45
- --box-shadow-primary: 0px 4px 10px rgba(163, 29, 29, 0.1);
46
- --box-shadow-secondary: 0px 3px 8px rgba(109, 35, 35, 0.1);
44
+ /* Sombras */
45
+ --box-shadow-primary: 0px 4px 12px rgba(125, 58, 193, 0.15);
46
+ --box-shadow-secondary: 0px 3px 8px rgba(198, 255, 0, 0.1);
47
47
  }