miguelgargallo commited on
Commit
f67eee9
·
1 Parent(s): 5682ff2
Files changed (4) hide show
  1. content.json +87 -0
  2. index.html +33 -60
  3. main.js +72 -0
  4. styles.css +342 -0
content.json ADDED
@@ -0,0 +1,87 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "title": "Pylar AI creative ML Shared Restrictive License",
3
+ "version": "Version 1.0 - 2024",
4
+ "subtitle": "Restrictive license for Pylar AI creative machine learning assets and related files, focused on preventing any use without explicit written permission from the author.",
5
+ "meta": "PYLAR AI CREATIVE ML / SHARED RESTRICTIVE LICENSE",
6
+ "badge": "Pylar AI creative ML Shared Restrictive License",
7
+ "sectionLabel": "Overview",
8
+ "sourceUrl": "https://huggingface.co/spaces/superdatas/sharedrestrictive",
9
+ "sourceText": "Source:",
10
+ "sections": [
11
+ {
12
+ "title": "Copyright",
13
+ "content": [
14
+ "<strong>Copyright © 2024 Miguel Gargallo</strong> All rights reserved for this work and its related files."
15
+ ]
16
+ },
17
+ {
18
+ "title": "1. Permission",
19
+ "content": [
20
+ "No permission is granted to use, copy, modify, distribute, or deploy these files in any context without the explicit written consent of the author.",
21
+ "The only exception is the author of the work, who may use these files as desired.",
22
+ "Any other party must obtain written authorization by email before any kind of usage."
23
+ ]
24
+ },
25
+ {
26
+ "title": "2. Conditions",
27
+ "content": [
28
+ "Under no circumstances may these files be used, incorporated into other projects, or shared, unless the author has explicitly allowed it in writing.",
29
+ "Any intended personal, academic, commercial, or research use requires prior written permission from the author.",
30
+ "Unauthorized use may be considered a violation of this license and of applicable copyright law."
31
+ ]
32
+ },
33
+ {
34
+ "title": "3. Disclaimer",
35
+ "content": [
36
+ "The files are provided without any warranty, express or implied, including but not limited to fitness for a particular purpose.",
37
+ "The author will not be liable for any damages or consequences arising from the use or misuse of these files, whether authorized or unauthorized."
38
+ ]
39
+ },
40
+ {
41
+ "title": "4. Enforcement",
42
+ "content": [
43
+ "The author reserves the right to take legal action against any party that uses these files without authorization.",
44
+ "Parties that fail to comply with this license may be subject to legal claims, including but not limited to injunctions and damages."
45
+ ]
46
+ },
47
+ {
48
+ "title": "5. Further Information",
49
+ "content": [
50
+ "For additional details about this license or to request permission, please visit the official license page or contact the author through the indicated channels.",
51
+ "More information is available at the referenced Hugging Face space."
52
+ ]
53
+ }
54
+ ],
55
+ "sidePanel": {
56
+ "pill": "Restrictive by Default",
57
+ "principles": {
58
+ "title": "License Intent",
59
+ "text": "This license is designed to strongly restrict usage of the underlying creative ML files, allowing access and usage only when the author has granted explicit written permission."
60
+ },
61
+ "snapshot": {
62
+ "title": "License Snapshot",
63
+ "items": [
64
+ [
65
+ "Status",
66
+ "Active"
67
+ ],
68
+ [
69
+ "Scope",
70
+ "Creative ML Assets"
71
+ ],
72
+ [
73
+ "Owner",
74
+ "Miguel Gargallo"
75
+ ],
76
+ [
77
+ "Year",
78
+ "2024"
79
+ ]
80
+ ]
81
+ },
82
+ "hint": {
83
+ "title": "Usage Reminder",
84
+ "text": "Do not use, copy, or distribute these files unless you have explicit written permission from the author. When in doubt, contact the author and obtain approval before any use."
85
+ }
86
+ }
87
+ }
index.html CHANGED
@@ -1,70 +1,43 @@
1
  <!DOCTYPE html>
2
- <html>
3
 
4
  <head>
5
- <title>Pylar AI Creative ML Shared Restrictive License</title>
6
- <style>
7
- body {
8
- font-family: 'Helvetica Neue', Arial, sans-serif;
9
- background-color: #fff;
10
- color: #333;
11
- line-height: 1.6;
12
- padding: 40px;
13
- max-width: 700px;
14
- margin: 40px auto;
15
- box-shadow: 0 0 10px rgba(0, 0, 0, 0.1);
16
- }
17
-
18
- h1 {
19
- color: #333;
20
- font-weight: 300;
21
- text-align: center;
22
- }
23
-
24
- h2 {
25
- font-weight: 300;
26
- color: #666;
27
- }
28
-
29
- a {
30
- color: #007aff;
31
- text-decoration: none;
32
- }
33
-
34
- a:hover {
35
- text-decoration: underline;
36
- }
37
-
38
- p {
39
- margin-bottom: 15px;
40
- font-size: 14px;
41
- }
42
-
43
- .footer {
44
- text-align: center;
45
- font-size: 12px;
46
- color: #999;
47
- margin-top: 40px;
48
- }
49
- </style>
50
  </head>
51
 
52
  <body>
53
- <h1>Pylar AI Creative ML Shared Restrictive License</h1>
54
- <p>Copyright (C) 2023 Miguel Gargallo</p>
55
- <h2>Permission</h2>
56
- <p>No permission to use anywere. With the exception of the author of the work, only if it is allowed in writing and
57
- by email.</p>
58
- <h2>Conditions</h2>
59
- <p>Under any circumstance.</p>
60
- <h2>Disclaimer</h2>
61
- <p>We may take legal actions if you use these files.</p>
62
- <p>For further details about this license, please visit: <a
63
- href="https://huggingface.co/spaces/superdatas/sharedrestrictive">https://huggingface.co/spaces/superdatas/sharedrestrictive</a>
64
- </p>
65
- <div class="footer">
66
- Pylar AI &copy; 2024
 
 
 
 
 
 
 
 
 
 
 
67
  </div>
 
 
 
68
  </body>
69
 
70
  </html>
 
1
  <!DOCTYPE html>
2
+ <html lang="en">
3
 
4
  <head>
5
+ <meta charset="UTF-8" />
6
+ <meta name="viewport" content="width=device-width, initial-scale=1.0" />
7
+ <title data-title></title>
8
+ <link rel="stylesheet" href="styles.css" />
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
9
  </head>
10
 
11
  <body>
12
+ <div class="page">
13
+ <div class="frame">
14
+ <div class="card">
15
+ <header>
16
+ <h1 class="htitle" data-badge></h1>
17
+
18
+ <hpill>
19
+ <span class="title-version" data-version></span>
20
+ </hpill>
21
+
22
+ <p class="subtitle" data-subtitle></p>
23
+ <p class="meta" data-meta></p>
24
+ </header>
25
+
26
+ <main>
27
+ <section class="license-content" data-sections></section>
28
+
29
+ <aside class="side-panel" data-sidepanel></aside>
30
+ </main>
31
+
32
+ <div class="source-block" data-source>
33
+ <strong data-source-text></strong>
34
+ <a data-source-url href="#" target="_blank" rel="noreferrer"></a>
35
+ </div>
36
+ </div>
37
  </div>
38
+ </div>
39
+
40
+ <script src="main.js"></script>
41
  </body>
42
 
43
  </html>
main.js ADDED
@@ -0,0 +1,72 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ async function loadContent() {
2
+ try {
3
+ const response = await fetch("content.json");
4
+ const content = await response.json();
5
+
6
+ // Header
7
+ document.querySelector("[data-title]").textContent = content.title;
8
+ document.querySelector("[data-version]").textContent = content.version;
9
+ document.querySelector("[data-subtitle]").textContent = content.subtitle;
10
+ document.querySelector("[data-meta]").textContent = content.meta;
11
+ document.querySelector("[data-badge]").textContent = content.badge;
12
+ document.title = content.title;
13
+
14
+ // Source
15
+ document.querySelector("[data-source-url]").href = content.sourceUrl;
16
+ document.querySelector("[data-source-url]").textContent = content.sourceUrl;
17
+ document.querySelector("[data-source-text]").textContent = content.sourceText;
18
+
19
+ // Sections
20
+ const sectionsContainer = document.querySelector("[data-sections]");
21
+ content.sections.forEach((section) => {
22
+ const sectionEl = document.createElement("div");
23
+ sectionEl.innerHTML = `
24
+ <div class="section-label">${content.sectionLabel}</div>
25
+ <h2>${section.title}</h2>
26
+ ${Array.isArray(section.content)
27
+ ? `<ul>${section.content
28
+ .map((item) => `<li>${item}</li>`)
29
+ .join("")}</ul>`
30
+ : `<p>${section.content}</p>`
31
+ }
32
+ `;
33
+ sectionsContainer.appendChild(sectionEl);
34
+ });
35
+
36
+ // Side panel
37
+ const sidePanel = document.querySelector("[data-sidepanel]");
38
+ sidePanel.innerHTML = `
39
+ <div class="side-card">
40
+ <div class="pill">
41
+ <span class="pill-dot"></span>
42
+ ${content.sidePanel.pill}
43
+ </div>
44
+ <h3 class="side-title">${content.sidePanel.principles.title}</h3>
45
+ <p class="side-text">${content.sidePanel.principles.text}</p>
46
+ </div>
47
+ <div class="side-card">
48
+ <h3 class="side-title">${content.sidePanel.snapshot.title}</h3>
49
+ <div class="meta-grid">
50
+ ${content.sidePanel.snapshot.items
51
+ .map(
52
+ ([key, value]) => `
53
+ <div class="meta-item">
54
+ <span>${key}</span>
55
+ <span>${value}</span>
56
+ </div>
57
+ `
58
+ )
59
+ .join("")}
60
+ </div>
61
+ </div>
62
+ <div class="side-card">
63
+ <h3 class="side-title">${content.sidePanel.hint.title}</h3>
64
+ <p class="side-text">${content.sidePanel.hint.text}</p>
65
+ </div>
66
+ `;
67
+ } catch (error) {
68
+ console.error("Error loading content:", error);
69
+ }
70
+ }
71
+
72
+ loadContent();
styles.css ADDED
@@ -0,0 +1,342 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ :root {
2
+ --bg: #050608;
3
+ --card-bg: #0d0f14;
4
+ --accent: #e63946;
5
+ --accent-soft: rgba(230, 57, 70, 0.18);
6
+ --text-main: #f5f5f7;
7
+ --text-muted: #9ea3b5;
8
+ --border-soft: rgba(255, 255, 255, 0.06);
9
+ --code-bg: #11141c;
10
+ --shadow-soft: 0 18px 40px rgba(0, 0, 0, 0.6);
11
+ --radius-lg: 18px;
12
+ --radius-sm: 8px;
13
+ --font-main: system-ui, -apple-system, BlinkMacSystemFont, "SF Pro Text",
14
+ Segoe UI, sans-serif;
15
+ }
16
+
17
+ * {
18
+ box-sizing: border-box;
19
+ margin: 0;
20
+ padding: 0;
21
+ }
22
+
23
+ html,
24
+ body {
25
+ height: 100%;
26
+ background: radial-gradient(circle at top, #151824 0%, #050608 55%);
27
+ color: var(--text-main);
28
+ font-family: var(--font-main);
29
+ -webkit-font-smoothing: antialiased;
30
+ }
31
+
32
+ body {
33
+ display: flex;
34
+ justify-content: center;
35
+ padding: 24px 12px;
36
+ overflow-y: auto;
37
+ }
38
+
39
+ .page {
40
+ width: 100%;
41
+ max-width: 960px;
42
+ }
43
+
44
+ .frame {
45
+ background: linear-gradient(135deg, rgba(230, 57, 70, 0.08), transparent);
46
+ border-radius: 24px;
47
+ padding: 1px;
48
+ box-shadow: var(--shadow-soft);
49
+ }
50
+
51
+ .card {
52
+ background: radial-gradient(circle at top left, #151926 0%, #050609 60%);
53
+ border-radius: 22px;
54
+ padding: 24px 20px 22px;
55
+ border: 1px solid var(--border-soft);
56
+ backdrop-filter: blur(16px);
57
+ }
58
+
59
+ header {
60
+ display: flex;
61
+ flex-direction: column;
62
+ gap: 8px;
63
+ margin-bottom: 20px;
64
+ border-bottom: 1px solid rgba(255, 255, 255, 0.05);
65
+ padding-bottom: 16px;
66
+ }
67
+
68
+ .badge {
69
+ display: inline-flex;
70
+ align-items: center;
71
+ gap: 8px;
72
+ font-size: 11px;
73
+ letter-spacing: 0.14em;
74
+ text-transform: uppercase;
75
+ color: var(--text-muted);
76
+ }
77
+
78
+ .badge-dot {
79
+ width: 8px;
80
+ height: 8px;
81
+ border-radius: 999px;
82
+ background: var(--accent);
83
+ box-shadow: 0 0 12px var(--accent);
84
+ }
85
+
86
+ .h1 {
87
+ /* font-size: 26px;
88
+ font-weight: 650;
89
+ letter-spacing: 0.04em;
90
+ text-transform: uppercase;
91
+ display: flex;
92
+ flex-wrap: wrap;
93
+ align-items: center;
94
+ gap: 8px; */
95
+ }
96
+
97
+ .htitle {
98
+ font-size: 22px;
99
+ font-weight: 650;
100
+ letter-spacing: 0.04em;
101
+ text-transform: uppercase;
102
+ display: flex;
103
+ flex-wrap: wrap;
104
+ align-items: center;
105
+ gap: 8px;
106
+ }
107
+
108
+ hpill {
109
+ font-size: 22px;
110
+ font-weight: 650;
111
+ letter-spacing: 0.04em;
112
+ text-transform: uppercase;
113
+ display: flex;
114
+ flex-wrap: wrap;
115
+ align-items: center;
116
+ gap: 8px;
117
+ }
118
+
119
+ .title-version {
120
+ font-size: 12px;
121
+ font-weight: 400;
122
+ color: var(--accent);
123
+ padding: 3px 9px;
124
+ border-radius: 999px;
125
+ background: var(--accent-soft);
126
+ border: 1px solid rgba(230, 57, 70, 0.45);
127
+ }
128
+
129
+ h1 span {
130
+ font-size: 12px;
131
+ font-weight: 400;
132
+ color: var(--accent);
133
+ padding: 3px 9px;
134
+ border-radius: 999px;
135
+ background: var(--accent-soft);
136
+ border: 1px solid rgba(230, 57, 70, 0.45);
137
+ }
138
+
139
+ .subtitle {
140
+ font-size: 13px;
141
+ color: var(--text-muted);
142
+ max-width: 580px;
143
+ line-height: 1.5;
144
+ }
145
+
146
+ .meta {
147
+ font-size: 10px;
148
+ color: var(--text-muted);
149
+ text-transform: uppercase;
150
+ letter-spacing: 0.16em;
151
+ margin-top: 2px;
152
+ }
153
+
154
+ main {
155
+ display: grid;
156
+ grid-template-columns: minmax(0, 1.3fr) minmax(0, 0.9fr);
157
+ gap: 20px;
158
+ }
159
+
160
+ .license-content {
161
+ font-size: 14px;
162
+ line-height: 1.7;
163
+ color: var(--text-main);
164
+ }
165
+
166
+ .license-content h2 {
167
+ font-size: 15px;
168
+ font-weight: 600;
169
+ margin: 16px 0 8px;
170
+ display: flex;
171
+ align-items: center;
172
+ gap: 8px;
173
+ }
174
+
175
+ .license-content h2::before {
176
+ content: "";
177
+ width: 18px;
178
+ height: 1px;
179
+ background: linear-gradient(90deg, var(--accent), transparent);
180
+ }
181
+
182
+ .license-content p {
183
+ margin-bottom: 10px;
184
+ color: var(--text-main);
185
+ }
186
+
187
+ .license-content ul {
188
+ margin: 6px 0 12px 18px;
189
+ list-style: none;
190
+ }
191
+
192
+ .license-content li {
193
+ position: relative;
194
+ margin-bottom: 6px;
195
+ color: var(--text-muted);
196
+ }
197
+
198
+ .license-content li::before {
199
+ content: "→";
200
+ position: absolute;
201
+ left: -14px;
202
+ color: var(--accent);
203
+ }
204
+
205
+ .section-label {
206
+ font-size: 11px;
207
+ text-transform: uppercase;
208
+ letter-spacing: 0.18em;
209
+ color: var(--text-muted);
210
+ margin-bottom: 2px;
211
+ }
212
+
213
+ .pill {
214
+ display: inline-flex;
215
+ align-items: center;
216
+ gap: 6px;
217
+ font-size: 11px;
218
+ color: var(--accent);
219
+ background: rgba(230, 57, 70, 0.08);
220
+ border-radius: 999px;
221
+ padding: 4px 10px;
222
+ border: 1px solid rgba(230, 57, 70, 0.3);
223
+ margin-bottom: 8px;
224
+ }
225
+
226
+ .pill-dot {
227
+ width: 6px;
228
+ height: 6px;
229
+ border-radius: 999px;
230
+ background: var(--accent);
231
+ }
232
+
233
+ .side-panel {
234
+ border-radius: 16px;
235
+ padding: 14px 14px 12px;
236
+ background: linear-gradient(
237
+ 145deg,
238
+ rgba(255, 255, 255, 0.02),
239
+ rgba(0, 0, 0, 0.4)
240
+ );
241
+ border: 1px solid var(--border-soft);
242
+ display: flex;
243
+ flex-direction: column;
244
+ gap: 12px;
245
+ }
246
+
247
+ .side-card {
248
+ padding: 10px 10px 9px;
249
+ border-radius: 13px;
250
+ background: rgba(5, 7, 12, 0.9);
251
+ border: 1px solid rgba(255, 255, 255, 0.04);
252
+ }
253
+
254
+ .side-title {
255
+ font-size: 12px;
256
+ font-weight: 600;
257
+ margin-bottom: 4px;
258
+ }
259
+
260
+ .side-text {
261
+ font-size: 12px;
262
+ color: var(--text-muted);
263
+ line-height: 1.5;
264
+ }
265
+
266
+ .meta-grid {
267
+ display: grid;
268
+ grid-template-columns: repeat(2, minmax(0, 1fr));
269
+ gap: 8px;
270
+ margin-top: 6px;
271
+ }
272
+
273
+ .meta-item {
274
+ font-size: 11px;
275
+ color: var(--text-muted);
276
+ display: flex;
277
+ flex-direction: column;
278
+ gap: 2px;
279
+ }
280
+
281
+ .meta-item span:first-child {
282
+ text-transform: uppercase;
283
+ letter-spacing: 0.16em;
284
+ font-size: 10px;
285
+ color: rgba(158, 163, 181, 0.75);
286
+ }
287
+
288
+ a {
289
+ color: var(--accent);
290
+ text-decoration: none;
291
+ border-bottom: 1px solid rgba(230, 57, 70, 0.4);
292
+ }
293
+
294
+ a:hover {
295
+ border-bottom-color: var(--accent);
296
+ }
297
+
298
+ .source-block {
299
+ margin-top: 10px;
300
+ font-size: 12px;
301
+ padding: 8px 10px;
302
+ border-radius: var(--radius-sm);
303
+ background: var(--code-bg);
304
+ border: 1px solid rgba(255, 255, 255, 0.04);
305
+ color: var(--text-muted);
306
+ word-break: break-all;
307
+ }
308
+
309
+ /* Responsive */
310
+ @media (min-width: 900px) {
311
+ h1 {
312
+ font-size: 28px;
313
+ }
314
+ }
315
+
316
+ @media (max-width: 900px) {
317
+ body {
318
+ padding: 16px 10px;
319
+ }
320
+
321
+ .card {
322
+ padding: 20px 16px 18px;
323
+ }
324
+
325
+ main {
326
+ grid-template-columns: minmax(0, 1fr);
327
+ }
328
+ }
329
+
330
+ @media (max-width: 600px) {
331
+ h1 {
332
+ font-size: 18px;
333
+ }
334
+
335
+ .subtitle {
336
+ font-size: 12px;
337
+ }
338
+
339
+ .license-content {
340
+ font-size: 13px;
341
+ }
342
+ }