slicejs-web-framework 2.3.4 → 2.4.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/LICENSE +21 -21
- package/README.md +24 -5
- package/Slice/Components/Structural/Controller/Controller.js +156 -154
- package/Slice/Components/Structural/Debugger/Debugger.css +619 -619
- package/Slice/Components/Structural/Debugger/Debugger.html +72 -72
- package/Slice/Components/Structural/Logger/Log.js +10 -10
- package/Slice/Components/Structural/StylesManager/StylesManager.js +6 -3
- package/Slice/Slice.js +111 -51
- package/api/index.js +261 -239
- package/api/middleware/securityMiddleware.js +252 -252
- package/package.json +37 -37
- package/sliceConfig.schema.json +4 -0
- package/src/App/index.html +22 -22
- package/src/App/index.js +23 -23
- package/src/App/style.css +40 -40
- package/src/Components/AppComponents/HomePage/HomePage.css +204 -204
- package/src/Components/AppComponents/HomePage/HomePage.html +48 -48
- package/src/Components/AppComponents/HomePage/HomePage.js +195 -195
- package/src/Components/AppComponents/Playground/Playground.css +11 -11
- package/src/Components/AppComponents/Playground/Playground.js +111 -111
- package/src/Components/Service/FetchManager/FetchManager.js +133 -133
- package/src/Components/Service/IndexedDbManager/IndexedDbManager.js +141 -141
- package/src/Components/Service/LocalStorageManager/LocalStorageManager.js +45 -45
- package/src/Components/Visual/Button/Button.css +47 -47
- package/src/Components/Visual/Button/Button.html +5 -5
- package/src/Components/Visual/Button/Button.js +92 -92
- package/src/Components/Visual/Card/Card.css +68 -68
- package/src/Components/Visual/Card/Card.html +7 -7
- package/src/Components/Visual/Card/Card.js +107 -107
- package/src/Components/Visual/Checkbox/Checkbox.css +87 -87
- package/src/Components/Visual/Checkbox/Checkbox.html +8 -8
- package/src/Components/Visual/Checkbox/Checkbox.js +86 -86
- package/src/Components/Visual/CodeVisualizer/CodeVisualizer.css +129 -129
- package/src/Components/Visual/CodeVisualizer/CodeVisualizer.html +3 -3
- package/src/Components/Visual/CodeVisualizer/CodeVisualizer.js +259 -259
- package/src/Components/Visual/Details/Details.css +70 -70
- package/src/Components/Visual/Details/Details.html +9 -9
- package/src/Components/Visual/Details/Details.js +76 -76
- package/src/Components/Visual/DropDown/DropDown.css +60 -60
- package/src/Components/Visual/DropDown/DropDown.html +5 -5
- package/src/Components/Visual/DropDown/DropDown.js +63 -63
- package/src/Components/Visual/Grid/Grid.css +7 -7
- package/src/Components/Visual/Grid/Grid.html +1 -1
- package/src/Components/Visual/Grid/Grid.js +57 -57
- package/src/Components/Visual/Icon/Icon.css +510 -510
- package/src/Components/Visual/Icon/Icon.js +89 -89
- package/src/Components/Visual/Icon/slc.json +554 -554
- package/src/Components/Visual/Icon/slc.styl +507 -507
- package/src/Components/Visual/Icon/slc.svg +1485 -1485
- package/src/Components/Visual/Icon/slc.symbol.svg +1058 -1058
- package/src/Components/Visual/Input/Input.css +91 -91
- package/src/Components/Visual/Input/Input.html +4 -4
- package/src/Components/Visual/Input/Input.js +215 -215
- package/src/Components/Visual/Layout/Layout.js +49 -49
- package/src/Components/Visual/Link/Link.css +8 -0
- package/src/Components/Visual/Link/Link.html +1 -0
- package/src/Components/Visual/Link/Link.js +63 -0
- package/src/Components/Visual/Loading/Loading.css +56 -56
- package/src/Components/Visual/Loading/Loading.html +83 -83
- package/src/Components/Visual/Loading/Loading.js +38 -38
- package/src/Components/Visual/MultiRoute/MultiRoute.js +93 -93
- package/src/Components/Visual/Navbar/Navbar.css +115 -115
- package/src/Components/Visual/Navbar/Navbar.html +44 -44
- package/src/Components/Visual/Navbar/Navbar.js +141 -141
- package/src/Components/Visual/NotFound/NotFound.css +116 -116
- package/src/Components/Visual/NotFound/NotFound.html +23 -23
- package/src/Components/Visual/NotFound/NotFound.js +16 -16
- package/src/Components/Visual/Route/Route.js +93 -93
- package/src/Components/Visual/Select/Select.css +84 -84
- package/src/Components/Visual/Select/Select.html +8 -8
- package/src/Components/Visual/Select/Select.js +195 -195
- package/src/Components/Visual/Switch/Switch.css +76 -76
- package/src/Components/Visual/Switch/Switch.html +8 -8
- package/src/Components/Visual/Switch/Switch.js +102 -102
- package/src/Components/Visual/TreeItem/TreeItem.css +36 -36
- package/src/Components/Visual/TreeItem/TreeItem.html +1 -1
- package/src/Components/Visual/TreeItem/TreeItem.js +126 -126
- package/src/Components/Visual/TreeView/TreeView.css +8 -8
- package/src/Components/Visual/TreeView/TreeView.html +1 -1
- package/src/Components/Visual/TreeView/TreeView.js +48 -48
- package/src/Components/components.js +2 -2
- package/src/Styles/sliceStyles.css +34 -34
- package/src/Themes/Dark.css +42 -42
- package/src/Themes/Light.css +31 -31
- package/src/Themes/Slice.css +47 -47
- package/src/routes.js +15 -15
- package/src/sliceConfig.json +73 -60
- package/src/testing.js +887 -887
- package/src/Components/Service/Link/Link.js +0 -26
package/src/App/index.js
CHANGED
|
@@ -1,23 +1,23 @@
|
|
|
1
|
-
import Slice from '/Slice/Slice.js';
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
/*
|
|
5
|
-
slice.router.beforeEach(async (to, from, next) => {
|
|
6
|
-
|
|
7
|
-
if(to.metadata.private){
|
|
8
|
-
const isAuthenticated = await //fetchlogic for validation
|
|
9
|
-
if(!isAuthenticated){
|
|
10
|
-
return next({ path: '/login', replace: true });
|
|
11
|
-
}
|
|
12
|
-
return next();
|
|
13
|
-
}
|
|
14
|
-
|
|
15
|
-
return next();
|
|
16
|
-
});
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
If any beforeEach or afterEach is defined, start the router after defining them
|
|
20
|
-
|
|
21
|
-
await slice.router.start();
|
|
22
|
-
|
|
23
|
-
*/
|
|
1
|
+
import Slice from '/Slice/Slice.js';
|
|
2
|
+
|
|
3
|
+
|
|
4
|
+
/*
|
|
5
|
+
slice.router.beforeEach(async (to, from, next) => {
|
|
6
|
+
|
|
7
|
+
if(to.metadata.private){
|
|
8
|
+
const isAuthenticated = await //fetchlogic for validation
|
|
9
|
+
if(!isAuthenticated){
|
|
10
|
+
return next({ path: '/login', replace: true });
|
|
11
|
+
}
|
|
12
|
+
return next();
|
|
13
|
+
}
|
|
14
|
+
|
|
15
|
+
return next();
|
|
16
|
+
});
|
|
17
|
+
|
|
18
|
+
|
|
19
|
+
If any beforeEach or afterEach is defined, start the router after defining them
|
|
20
|
+
|
|
21
|
+
await slice.router.start();
|
|
22
|
+
|
|
23
|
+
*/
|
package/src/App/style.css
CHANGED
|
@@ -1,40 +1,40 @@
|
|
|
1
|
-
/* :root {
|
|
2
|
-
--docs-width: 64%;
|
|
3
|
-
}
|
|
4
|
-
slice-layout {
|
|
5
|
-
display: flex;
|
|
6
|
-
justify-content: center;
|
|
7
|
-
}
|
|
8
|
-
|
|
9
|
-
p {
|
|
10
|
-
text-align: justify;
|
|
11
|
-
}
|
|
12
|
-
h1 {
|
|
13
|
-
padding-top: 10px;
|
|
14
|
-
padding-bottom: 10px;
|
|
15
|
-
border-bottom: 1px solid var(--secondary-background-color);
|
|
16
|
-
}
|
|
17
|
-
h2 {
|
|
18
|
-
padding-top: 10px;
|
|
19
|
-
}
|
|
20
|
-
.grid-container {
|
|
21
|
-
overflow-x: auto;
|
|
22
|
-
}
|
|
23
|
-
@media only screen and (max-width: 770px) {
|
|
24
|
-
:root {
|
|
25
|
-
--docs-width: 100%;
|
|
26
|
-
}
|
|
27
|
-
}
|
|
28
|
-
* {
|
|
29
|
-
font-family: var(--font-family);
|
|
30
|
-
}
|
|
31
|
-
.docs_container {
|
|
32
|
-
color: var(--font-primary-color);
|
|
33
|
-
margin-top: 100px;
|
|
34
|
-
overflow-y: scroll;
|
|
35
|
-
overflow-x: hidden;
|
|
36
|
-
width: var(--docs-width);
|
|
37
|
-
padding-left: 10px;
|
|
38
|
-
padding-right: 10px;
|
|
39
|
-
padding-bottom: 25px;
|
|
40
|
-
} */
|
|
1
|
+
/* :root {
|
|
2
|
+
--docs-width: 64%;
|
|
3
|
+
}
|
|
4
|
+
slice-layout {
|
|
5
|
+
display: flex;
|
|
6
|
+
justify-content: center;
|
|
7
|
+
}
|
|
8
|
+
|
|
9
|
+
p {
|
|
10
|
+
text-align: justify;
|
|
11
|
+
}
|
|
12
|
+
h1 {
|
|
13
|
+
padding-top: 10px;
|
|
14
|
+
padding-bottom: 10px;
|
|
15
|
+
border-bottom: 1px solid var(--secondary-background-color);
|
|
16
|
+
}
|
|
17
|
+
h2 {
|
|
18
|
+
padding-top: 10px;
|
|
19
|
+
}
|
|
20
|
+
.grid-container {
|
|
21
|
+
overflow-x: auto;
|
|
22
|
+
}
|
|
23
|
+
@media only screen and (max-width: 770px) {
|
|
24
|
+
:root {
|
|
25
|
+
--docs-width: 100%;
|
|
26
|
+
}
|
|
27
|
+
}
|
|
28
|
+
* {
|
|
29
|
+
font-family: var(--font-family);
|
|
30
|
+
}
|
|
31
|
+
.docs_container {
|
|
32
|
+
color: var(--font-primary-color);
|
|
33
|
+
margin-top: 100px;
|
|
34
|
+
overflow-y: scroll;
|
|
35
|
+
overflow-x: hidden;
|
|
36
|
+
width: var(--docs-width);
|
|
37
|
+
padding-left: 10px;
|
|
38
|
+
padding-right: 10px;
|
|
39
|
+
padding-bottom: 25px;
|
|
40
|
+
} */
|
|
@@ -1,205 +1,205 @@
|
|
|
1
|
-
/* Home page styles */
|
|
2
|
-
slice-home-page {
|
|
3
|
-
display: block;
|
|
4
|
-
width: 100%;
|
|
5
|
-
font-family: var(--font-family);
|
|
6
|
-
color: var(--font-primary-color);
|
|
7
|
-
}
|
|
8
|
-
|
|
9
|
-
/* Hero section styles */
|
|
10
|
-
.hero-section {
|
|
11
|
-
position: relative;
|
|
12
|
-
min-height: 80vh;
|
|
13
|
-
display: flex;
|
|
14
|
-
align-items: center;
|
|
15
|
-
justify-content: center;
|
|
16
|
-
text-align: center;
|
|
17
|
-
padding: 2rem;
|
|
18
|
-
background-color: var(--primary-background-color);
|
|
19
|
-
overflow: hidden;
|
|
20
|
-
}
|
|
21
|
-
|
|
22
|
-
.hero-content {
|
|
23
|
-
max-width: 800px;
|
|
24
|
-
z-index: 1;
|
|
25
|
-
}
|
|
26
|
-
|
|
27
|
-
.hero-logo-container {
|
|
28
|
-
margin-bottom: 1.5rem;
|
|
29
|
-
}
|
|
30
|
-
|
|
31
|
-
.hero-logo {
|
|
32
|
-
max-width: 150px;
|
|
33
|
-
height: auto;
|
|
34
|
-
/* Convertir el logo a una silueta */
|
|
35
|
-
filter: brightness(0) drop-shadow(0 0 8px var(--primary-color));
|
|
36
|
-
}
|
|
37
|
-
|
|
38
|
-
.hero-title {
|
|
39
|
-
font-size: 3rem;
|
|
40
|
-
margin-bottom: 1rem;
|
|
41
|
-
color: var(--font-primary-color);
|
|
42
|
-
}
|
|
43
|
-
|
|
44
|
-
.hero-title .highlight {
|
|
45
|
-
color: var(--primary-color);
|
|
46
|
-
}
|
|
47
|
-
|
|
48
|
-
.hero-subtitle {
|
|
49
|
-
font-size: 1.5rem;
|
|
50
|
-
margin-bottom: 1.5rem;
|
|
51
|
-
color: var(--font-secondary-color);
|
|
52
|
-
}
|
|
53
|
-
|
|
54
|
-
.hero-description {
|
|
55
|
-
font-size: 1.1rem;
|
|
56
|
-
margin-bottom: 2rem;
|
|
57
|
-
line-height: 1.6;
|
|
58
|
-
}
|
|
59
|
-
|
|
60
|
-
.cta-buttons {
|
|
61
|
-
display: flex;
|
|
62
|
-
gap: 1rem;
|
|
63
|
-
justify-content: center;
|
|
64
|
-
margin-top: 2rem;
|
|
65
|
-
}
|
|
66
|
-
|
|
67
|
-
/* Features section styles */
|
|
68
|
-
.features-section {
|
|
69
|
-
padding: 5rem 2rem;
|
|
70
|
-
background-color: var(--secondary-background-color);
|
|
71
|
-
}
|
|
72
|
-
|
|
73
|
-
.section-title {
|
|
74
|
-
text-align: center;
|
|
75
|
-
font-size: 2.5rem;
|
|
76
|
-
margin-bottom: 3rem;
|
|
77
|
-
color: var(--primary-color);
|
|
78
|
-
}
|
|
79
|
-
|
|
80
|
-
.feature-grid {
|
|
81
|
-
display: grid;
|
|
82
|
-
grid-template-columns: repeat(3, 1fr);
|
|
83
|
-
gap: 2rem;
|
|
84
|
-
max-width: 1200px;
|
|
85
|
-
margin: 0 auto;
|
|
86
|
-
}
|
|
87
|
-
|
|
88
|
-
.feature-item {
|
|
89
|
-
padding: 2rem;
|
|
90
|
-
background-color: var(--primary-background-color);
|
|
91
|
-
border-radius: var(--border-radius-slice);
|
|
92
|
-
box-shadow: 0 4px 12px rgba(0, 0, 0, 0.1);
|
|
93
|
-
transition: transform 0.3s ease, box-shadow 0.3s ease;
|
|
94
|
-
}
|
|
95
|
-
|
|
96
|
-
.feature-item:hover {
|
|
97
|
-
transform: translateY(-5px);
|
|
98
|
-
box-shadow: 0 8px 24px rgba(0, 0, 0, 0.15);
|
|
99
|
-
}
|
|
100
|
-
|
|
101
|
-
.feature-title {
|
|
102
|
-
font-size: 1.5rem;
|
|
103
|
-
margin-bottom: 1rem;
|
|
104
|
-
color: var(--primary-color);
|
|
105
|
-
}
|
|
106
|
-
|
|
107
|
-
.feature-description {
|
|
108
|
-
color: var(--font-secondary-color);
|
|
109
|
-
line-height: 1.6;
|
|
110
|
-
}
|
|
111
|
-
|
|
112
|
-
/* Example section styles */
|
|
113
|
-
.example-section {
|
|
114
|
-
padding: 5rem 2rem;
|
|
115
|
-
background-color: var(--primary-background-color);
|
|
116
|
-
}
|
|
117
|
-
|
|
118
|
-
.section-description {
|
|
119
|
-
text-align: center;
|
|
120
|
-
max-width: 800px;
|
|
121
|
-
margin: 0 auto 3rem auto;
|
|
122
|
-
color: var(--font-secondary-color);
|
|
123
|
-
font-size: 1.2rem;
|
|
124
|
-
}
|
|
125
|
-
|
|
126
|
-
.examples-container {
|
|
127
|
-
display: grid;
|
|
128
|
-
grid-template-columns: repeat(2, 1fr);
|
|
129
|
-
gap: 3rem;
|
|
130
|
-
max-width: 1000px;
|
|
131
|
-
margin: 0 auto;
|
|
132
|
-
}
|
|
133
|
-
|
|
134
|
-
.example-item {
|
|
135
|
-
display: flex;
|
|
136
|
-
flex-direction: column;
|
|
137
|
-
gap: 1rem;
|
|
138
|
-
padding: 2rem;
|
|
139
|
-
background-color: var(--secondary-background-color);
|
|
140
|
-
border-radius: var(--border-radius-slice);
|
|
141
|
-
box-shadow: 0 4px 12px rgba(0, 0, 0, 0.1);
|
|
142
|
-
}
|
|
143
|
-
|
|
144
|
-
.example-item h3 {
|
|
145
|
-
margin: 0;
|
|
146
|
-
font-size: 1.3rem;
|
|
147
|
-
color: var(--primary-color);
|
|
148
|
-
}
|
|
149
|
-
|
|
150
|
-
/* Getting started section styles */
|
|
151
|
-
.getting-started-section {
|
|
152
|
-
padding: 5rem 2rem;
|
|
153
|
-
background-color: var(--secondary-background-color);
|
|
154
|
-
text-align: center;
|
|
155
|
-
}
|
|
156
|
-
|
|
157
|
-
.code-sample {
|
|
158
|
-
max-width: 800px;
|
|
159
|
-
margin: 0 auto;
|
|
160
|
-
text-align: left;
|
|
161
|
-
}
|
|
162
|
-
|
|
163
|
-
/* Footer styles */
|
|
164
|
-
.home-footer {
|
|
165
|
-
padding: 3rem 2rem;
|
|
166
|
-
text-align: center;
|
|
167
|
-
background-color: var(--primary-color);
|
|
168
|
-
color: var(--primary-color-contrast);
|
|
169
|
-
}
|
|
170
|
-
|
|
171
|
-
.copyright {
|
|
172
|
-
margin-top: 1rem;
|
|
173
|
-
font-size: 0.9rem;
|
|
174
|
-
opacity: 0.8;
|
|
175
|
-
}
|
|
176
|
-
|
|
177
|
-
/* Responsive styles */
|
|
178
|
-
@media (max-width: 992px) {
|
|
179
|
-
.feature-grid {
|
|
180
|
-
grid-template-columns: repeat(2, 1fr);
|
|
181
|
-
}
|
|
182
|
-
|
|
183
|
-
.examples-container {
|
|
184
|
-
grid-template-columns: 1fr;
|
|
185
|
-
}
|
|
186
|
-
}
|
|
187
|
-
|
|
188
|
-
@media (max-width: 768px) {
|
|
189
|
-
.hero-title {
|
|
190
|
-
font-size: 2.5rem;
|
|
191
|
-
}
|
|
192
|
-
|
|
193
|
-
.hero-subtitle {
|
|
194
|
-
font-size: 1.3rem;
|
|
195
|
-
}
|
|
196
|
-
|
|
197
|
-
.feature-grid {
|
|
198
|
-
grid-template-columns: 1fr;
|
|
199
|
-
}
|
|
200
|
-
|
|
201
|
-
.cta-buttons {
|
|
202
|
-
flex-direction: column;
|
|
203
|
-
align-items: center;
|
|
204
|
-
}
|
|
1
|
+
/* Home page styles */
|
|
2
|
+
slice-home-page {
|
|
3
|
+
display: block;
|
|
4
|
+
width: 100%;
|
|
5
|
+
font-family: var(--font-family);
|
|
6
|
+
color: var(--font-primary-color);
|
|
7
|
+
}
|
|
8
|
+
|
|
9
|
+
/* Hero section styles */
|
|
10
|
+
.hero-section {
|
|
11
|
+
position: relative;
|
|
12
|
+
min-height: 80vh;
|
|
13
|
+
display: flex;
|
|
14
|
+
align-items: center;
|
|
15
|
+
justify-content: center;
|
|
16
|
+
text-align: center;
|
|
17
|
+
padding: 2rem;
|
|
18
|
+
background-color: var(--primary-background-color);
|
|
19
|
+
overflow: hidden;
|
|
20
|
+
}
|
|
21
|
+
|
|
22
|
+
.hero-content {
|
|
23
|
+
max-width: 800px;
|
|
24
|
+
z-index: 1;
|
|
25
|
+
}
|
|
26
|
+
|
|
27
|
+
.hero-logo-container {
|
|
28
|
+
margin-bottom: 1.5rem;
|
|
29
|
+
}
|
|
30
|
+
|
|
31
|
+
.hero-logo {
|
|
32
|
+
max-width: 150px;
|
|
33
|
+
height: auto;
|
|
34
|
+
/* Convertir el logo a una silueta */
|
|
35
|
+
filter: brightness(0) drop-shadow(0 0 8px var(--primary-color));
|
|
36
|
+
}
|
|
37
|
+
|
|
38
|
+
.hero-title {
|
|
39
|
+
font-size: 3rem;
|
|
40
|
+
margin-bottom: 1rem;
|
|
41
|
+
color: var(--font-primary-color);
|
|
42
|
+
}
|
|
43
|
+
|
|
44
|
+
.hero-title .highlight {
|
|
45
|
+
color: var(--primary-color);
|
|
46
|
+
}
|
|
47
|
+
|
|
48
|
+
.hero-subtitle {
|
|
49
|
+
font-size: 1.5rem;
|
|
50
|
+
margin-bottom: 1.5rem;
|
|
51
|
+
color: var(--font-secondary-color);
|
|
52
|
+
}
|
|
53
|
+
|
|
54
|
+
.hero-description {
|
|
55
|
+
font-size: 1.1rem;
|
|
56
|
+
margin-bottom: 2rem;
|
|
57
|
+
line-height: 1.6;
|
|
58
|
+
}
|
|
59
|
+
|
|
60
|
+
.cta-buttons {
|
|
61
|
+
display: flex;
|
|
62
|
+
gap: 1rem;
|
|
63
|
+
justify-content: center;
|
|
64
|
+
margin-top: 2rem;
|
|
65
|
+
}
|
|
66
|
+
|
|
67
|
+
/* Features section styles */
|
|
68
|
+
.features-section {
|
|
69
|
+
padding: 5rem 2rem;
|
|
70
|
+
background-color: var(--secondary-background-color);
|
|
71
|
+
}
|
|
72
|
+
|
|
73
|
+
.section-title {
|
|
74
|
+
text-align: center;
|
|
75
|
+
font-size: 2.5rem;
|
|
76
|
+
margin-bottom: 3rem;
|
|
77
|
+
color: var(--primary-color);
|
|
78
|
+
}
|
|
79
|
+
|
|
80
|
+
.feature-grid {
|
|
81
|
+
display: grid;
|
|
82
|
+
grid-template-columns: repeat(3, 1fr);
|
|
83
|
+
gap: 2rem;
|
|
84
|
+
max-width: 1200px;
|
|
85
|
+
margin: 0 auto;
|
|
86
|
+
}
|
|
87
|
+
|
|
88
|
+
.feature-item {
|
|
89
|
+
padding: 2rem;
|
|
90
|
+
background-color: var(--primary-background-color);
|
|
91
|
+
border-radius: var(--border-radius-slice);
|
|
92
|
+
box-shadow: 0 4px 12px rgba(0, 0, 0, 0.1);
|
|
93
|
+
transition: transform 0.3s ease, box-shadow 0.3s ease;
|
|
94
|
+
}
|
|
95
|
+
|
|
96
|
+
.feature-item:hover {
|
|
97
|
+
transform: translateY(-5px);
|
|
98
|
+
box-shadow: 0 8px 24px rgba(0, 0, 0, 0.15);
|
|
99
|
+
}
|
|
100
|
+
|
|
101
|
+
.feature-title {
|
|
102
|
+
font-size: 1.5rem;
|
|
103
|
+
margin-bottom: 1rem;
|
|
104
|
+
color: var(--primary-color);
|
|
105
|
+
}
|
|
106
|
+
|
|
107
|
+
.feature-description {
|
|
108
|
+
color: var(--font-secondary-color);
|
|
109
|
+
line-height: 1.6;
|
|
110
|
+
}
|
|
111
|
+
|
|
112
|
+
/* Example section styles */
|
|
113
|
+
.example-section {
|
|
114
|
+
padding: 5rem 2rem;
|
|
115
|
+
background-color: var(--primary-background-color);
|
|
116
|
+
}
|
|
117
|
+
|
|
118
|
+
.section-description {
|
|
119
|
+
text-align: center;
|
|
120
|
+
max-width: 800px;
|
|
121
|
+
margin: 0 auto 3rem auto;
|
|
122
|
+
color: var(--font-secondary-color);
|
|
123
|
+
font-size: 1.2rem;
|
|
124
|
+
}
|
|
125
|
+
|
|
126
|
+
.examples-container {
|
|
127
|
+
display: grid;
|
|
128
|
+
grid-template-columns: repeat(2, 1fr);
|
|
129
|
+
gap: 3rem;
|
|
130
|
+
max-width: 1000px;
|
|
131
|
+
margin: 0 auto;
|
|
132
|
+
}
|
|
133
|
+
|
|
134
|
+
.example-item {
|
|
135
|
+
display: flex;
|
|
136
|
+
flex-direction: column;
|
|
137
|
+
gap: 1rem;
|
|
138
|
+
padding: 2rem;
|
|
139
|
+
background-color: var(--secondary-background-color);
|
|
140
|
+
border-radius: var(--border-radius-slice);
|
|
141
|
+
box-shadow: 0 4px 12px rgba(0, 0, 0, 0.1);
|
|
142
|
+
}
|
|
143
|
+
|
|
144
|
+
.example-item h3 {
|
|
145
|
+
margin: 0;
|
|
146
|
+
font-size: 1.3rem;
|
|
147
|
+
color: var(--primary-color);
|
|
148
|
+
}
|
|
149
|
+
|
|
150
|
+
/* Getting started section styles */
|
|
151
|
+
.getting-started-section {
|
|
152
|
+
padding: 5rem 2rem;
|
|
153
|
+
background-color: var(--secondary-background-color);
|
|
154
|
+
text-align: center;
|
|
155
|
+
}
|
|
156
|
+
|
|
157
|
+
.code-sample {
|
|
158
|
+
max-width: 800px;
|
|
159
|
+
margin: 0 auto;
|
|
160
|
+
text-align: left;
|
|
161
|
+
}
|
|
162
|
+
|
|
163
|
+
/* Footer styles */
|
|
164
|
+
.home-footer {
|
|
165
|
+
padding: 3rem 2rem;
|
|
166
|
+
text-align: center;
|
|
167
|
+
background-color: var(--primary-color);
|
|
168
|
+
color: var(--primary-color-contrast);
|
|
169
|
+
}
|
|
170
|
+
|
|
171
|
+
.copyright {
|
|
172
|
+
margin-top: 1rem;
|
|
173
|
+
font-size: 0.9rem;
|
|
174
|
+
opacity: 0.8;
|
|
175
|
+
}
|
|
176
|
+
|
|
177
|
+
/* Responsive styles */
|
|
178
|
+
@media (max-width: 992px) {
|
|
179
|
+
.feature-grid {
|
|
180
|
+
grid-template-columns: repeat(2, 1fr);
|
|
181
|
+
}
|
|
182
|
+
|
|
183
|
+
.examples-container {
|
|
184
|
+
grid-template-columns: 1fr;
|
|
185
|
+
}
|
|
186
|
+
}
|
|
187
|
+
|
|
188
|
+
@media (max-width: 768px) {
|
|
189
|
+
.hero-title {
|
|
190
|
+
font-size: 2.5rem;
|
|
191
|
+
}
|
|
192
|
+
|
|
193
|
+
.hero-subtitle {
|
|
194
|
+
font-size: 1.3rem;
|
|
195
|
+
}
|
|
196
|
+
|
|
197
|
+
.feature-grid {
|
|
198
|
+
grid-template-columns: 1fr;
|
|
199
|
+
}
|
|
200
|
+
|
|
201
|
+
.cta-buttons {
|
|
202
|
+
flex-direction: column;
|
|
203
|
+
align-items: center;
|
|
204
|
+
}
|
|
205
205
|
}
|
|
@@ -1,49 +1,49 @@
|
|
|
1
|
-
<div class="home-page-container">
|
|
2
|
-
<div class="hero-section">
|
|
3
|
-
<div class="hero-content">
|
|
4
|
-
<div class="hero-logo-container">
|
|
5
|
-
<img src="/images/Slice.js-logo.png" alt="Slice.js Logo" class="hero-logo" />
|
|
6
|
-
</div>
|
|
7
|
-
<h1 class="hero-title">Welcome to <span class="highlight">Slice.js</span></h1>
|
|
8
|
-
<p class="hero-subtitle">Build Your Web App One Slice at a Time</p>
|
|
9
|
-
<p class="hero-description">
|
|
10
|
-
A modern, lightweight component-based framework for building web applications using vanilla JavaScript and web standards.
|
|
11
|
-
</p>
|
|
12
|
-
<div class="cta-buttons"></div>
|
|
13
|
-
</div>
|
|
14
|
-
</div>
|
|
15
|
-
|
|
16
|
-
<section class="features-section">
|
|
17
|
-
<h2 class="section-title">Why Choose Slice.js?</h2>
|
|
18
|
-
<div class="feature-grid"></div>
|
|
19
|
-
</section>
|
|
20
|
-
|
|
21
|
-
<section class="example-section">
|
|
22
|
-
<h2 class="section-title">Component Showcase</h2>
|
|
23
|
-
<p class="section-description">
|
|
24
|
-
Explore some of the ready-to-use components that come with Slice.js
|
|
25
|
-
</p>
|
|
26
|
-
<div class="examples-container"></div>
|
|
27
|
-
</section>
|
|
28
|
-
|
|
29
|
-
<section class="getting-started-section">
|
|
30
|
-
<h2 class="section-title">Get Started Now</h2>
|
|
31
|
-
<div class="code-sample">
|
|
32
|
-
<pre><code>
|
|
33
|
-
// Initialize a new Slice.js project
|
|
34
|
-
npm run slice:init
|
|
35
|
-
|
|
36
|
-
// Create a new component
|
|
37
|
-
npm run slice:create
|
|
38
|
-
|
|
39
|
-
// Start your application
|
|
40
|
-
npm run slice:start
|
|
41
|
-
</code></pre>
|
|
42
|
-
</div>
|
|
43
|
-
</section>
|
|
44
|
-
|
|
45
|
-
<footer class="home-footer">
|
|
46
|
-
<p>Made with ❤️ using Slice.js</p>
|
|
47
|
-
<p class="copyright">© 2025 Slice.js Framework</p>
|
|
48
|
-
</footer>
|
|
1
|
+
<div class="home-page-container">
|
|
2
|
+
<div class="hero-section">
|
|
3
|
+
<div class="hero-content">
|
|
4
|
+
<div class="hero-logo-container">
|
|
5
|
+
<img src="/images/Slice.js-logo.png" alt="Slice.js Logo" class="hero-logo" />
|
|
6
|
+
</div>
|
|
7
|
+
<h1 class="hero-title">Welcome to <span class="highlight">Slice.js</span></h1>
|
|
8
|
+
<p class="hero-subtitle">Build Your Web App One Slice at a Time</p>
|
|
9
|
+
<p class="hero-description">
|
|
10
|
+
A modern, lightweight component-based framework for building web applications using vanilla JavaScript and web standards.
|
|
11
|
+
</p>
|
|
12
|
+
<div class="cta-buttons"></div>
|
|
13
|
+
</div>
|
|
14
|
+
</div>
|
|
15
|
+
|
|
16
|
+
<section class="features-section">
|
|
17
|
+
<h2 class="section-title">Why Choose Slice.js?</h2>
|
|
18
|
+
<div class="feature-grid"></div>
|
|
19
|
+
</section>
|
|
20
|
+
|
|
21
|
+
<section class="example-section">
|
|
22
|
+
<h2 class="section-title">Component Showcase</h2>
|
|
23
|
+
<p class="section-description">
|
|
24
|
+
Explore some of the ready-to-use components that come with Slice.js
|
|
25
|
+
</p>
|
|
26
|
+
<div class="examples-container"></div>
|
|
27
|
+
</section>
|
|
28
|
+
|
|
29
|
+
<section class="getting-started-section">
|
|
30
|
+
<h2 class="section-title">Get Started Now</h2>
|
|
31
|
+
<div class="code-sample">
|
|
32
|
+
<pre><code>
|
|
33
|
+
// Initialize a new Slice.js project
|
|
34
|
+
npm run slice:init
|
|
35
|
+
|
|
36
|
+
// Create a new component
|
|
37
|
+
npm run slice:create
|
|
38
|
+
|
|
39
|
+
// Start your application
|
|
40
|
+
npm run slice:start
|
|
41
|
+
</code></pre>
|
|
42
|
+
</div>
|
|
43
|
+
</section>
|
|
44
|
+
|
|
45
|
+
<footer class="home-footer">
|
|
46
|
+
<p>Made with ❤️ using Slice.js</p>
|
|
47
|
+
<p class="copyright">© 2025 Slice.js Framework</p>
|
|
48
|
+
</footer>
|
|
49
49
|
</div>
|