vijaym commited on
Commit
63b4937
·
verified ·
1 Parent(s): 2d142a0

Replace placeholder with FrameByFrame organization page

Browse files
Files changed (2) hide show
  1. index.html +84 -11
  2. style.css +306 -17
index.html CHANGED
@@ -1,19 +1,92 @@
1
  <!doctype html>
2
- <html>
3
  <head>
4
  <meta charset="utf-8" />
5
- <meta name="viewport" content="width=device-width" />
6
- <title>My static Space</title>
 
 
 
 
7
  <link rel="stylesheet" href="style.css" />
8
  </head>
9
  <body>
10
- <div class="card">
11
- <h1>Welcome to your static Space!</h1>
12
- <p>You can modify this app directly by editing <i>index.html</i> in the Files and versions tab.</p>
13
- <p>
14
- Also don't forget to check the
15
- <a href="https://huggingface.co/docs/hub/spaces" target="_blank">Spaces documentation</a>.
16
- </p>
17
- </div>
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
18
  </body>
19
  </html>
 
1
  <!doctype html>
2
+ <html lang="en">
3
  <head>
4
  <meta charset="utf-8" />
5
+ <meta name="viewport" content="width=device-width, initial-scale=1" />
6
+ <meta
7
+ name="description"
8
+ content="FrameByFrame builds practical AI agents and efficient models for the physical world."
9
+ />
10
+ <title>FrameByFrame</title>
11
  <link rel="stylesheet" href="style.css" />
12
  </head>
13
  <body>
14
+ <main class="fbf-page">
15
+ <section class="fbf-hero" aria-labelledby="fbf-title">
16
+ <div class="fbf-reel" aria-hidden="true">F<span>●</span>F</div>
17
+ <p class="fbf-eyebrow">FRAMEBYFRAME · ARTELLIGENCE FOUNDRY</p>
18
+ <h1 id="fbf-title">AI agents built for the physical world.</h1>
19
+ <p class="fbf-lead">
20
+ We build practical, efficient AI with an emphasis on local and
21
+ on-device models, sports analytics, privacy, and edge intelligence.
22
+ </p>
23
+ <nav class="fbf-actions" aria-label="FrameByFrame links">
24
+ <a
25
+ class="fbf-button fbf-button-primary"
26
+ href="https://huggingface.co/FrameByFrame?sort_models=downloads#models"
27
+ >
28
+ Explore our models <span aria-hidden="true">→</span>
29
+ </a>
30
+ <a
31
+ class="fbf-button fbf-button-secondary"
32
+ href="https://www.artelligence.ai/"
33
+ target="_blank"
34
+ rel="noreferrer"
35
+ >
36
+ Visit Artelligence ↗
37
+ </a>
38
+ </nav>
39
+ </section>
40
+
41
+ <section class="fbf-work" aria-labelledby="fbf-work-title">
42
+ <div class="fbf-section-heading">
43
+ <p class="fbf-kicker">OPEN WORK</p>
44
+ <h2 id="fbf-work-title">Small models. Real-world utility.</h2>
45
+ </div>
46
+
47
+ <div class="fbf-grid">
48
+ <article class="fbf-project">
49
+ <span class="fbf-icon" aria-hidden="true">◈</span>
50
+ <h3>AI guardrails</h3>
51
+ <p>
52
+ Models for content safety, prompt-injection defense, and
53
+ multilingual moderation.
54
+ </p>
55
+ </article>
56
+
57
+ <article class="fbf-project">
58
+ <span class="fbf-icon" aria-hidden="true">◎</span>
59
+ <h3>Privacy and PII</h3>
60
+ <p>
61
+ Accurate Korean privacy detection and redaction designed for
62
+ production workflows.
63
+ </p>
64
+ </article>
65
+
66
+ <article class="fbf-project">
67
+ <span class="fbf-icon" aria-hidden="true">⌘</span>
68
+ <h3>Language intelligence</h3>
69
+ <p>
70
+ Fast programming-language identification covering more than 100
71
+ languages.
72
+ </p>
73
+ </article>
74
+
75
+ <article class="fbf-project">
76
+ <span class="fbf-icon" aria-hidden="true">◇</span>
77
+ <h3>Edge AI agents</h3>
78
+ <p>
79
+ Local-first models and tool-use adapters for responsive,
80
+ privacy-conscious applications.
81
+ </p>
82
+ </article>
83
+ </div>
84
+ </section>
85
+
86
+ <footer class="fbf-footer">
87
+ <p>Open models from Artelligence Foundry.</p>
88
+ <a href="https://huggingface.co/FrameByFrame">Follow FrameByFrame</a>
89
+ </footer>
90
+ </main>
91
  </body>
92
  </html>
style.css CHANGED
@@ -1,28 +1,317 @@
1
- body {
2
- padding: 2rem;
3
- font-family: -apple-system, BlinkMacSystemFont, "Arial", sans-serif;
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
4
  }
5
 
6
- h1 {
7
- font-size: 16px;
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
8
  margin-top: 0;
9
  }
10
 
11
- p {
12
- color: rgb(107, 114, 128);
13
- font-size: 15px;
14
- margin-bottom: 10px;
15
- margin-top: 5px;
16
  }
17
 
18
- .card {
19
- max-width: 620px;
20
- margin: 0 auto;
21
- padding: 16px;
22
- border: 1px solid lightgray;
23
- border-radius: 16px;
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
24
  }
25
 
26
- .card p:last-child {
27
  margin-bottom: 0;
28
  }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ @import url("https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;500;600;700&family=Space+Grotesk:wght@500;600;700&display=swap");
2
+
3
+ .fbf-page {
4
+ --fbf-ink: #17151f;
5
+ --fbf-muted: #675f73;
6
+ --fbf-paper: #fbf9ff;
7
+ --fbf-panel: rgba(255, 255, 255, 0.75);
8
+ --fbf-line: rgba(41, 31, 56, 0.12);
9
+ --fbf-purple: #6d28d9;
10
+ --fbf-violet: #8b5cf6;
11
+ --fbf-orange: #f97316;
12
+ --fbf-shadow: 0 24px 70px rgba(55, 29, 91, 0.12);
13
+ box-sizing: border-box;
14
+ max-width: 980px;
15
+ margin: 0 auto;
16
+ overflow: hidden;
17
+ color: var(--fbf-ink);
18
+ font-family: "DM Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
19
+ background:
20
+ radial-gradient(circle at 90% 5%, rgba(249, 115, 22, 0.16), transparent 29%),
21
+ radial-gradient(circle at 5% 35%, rgba(139, 92, 246, 0.14), transparent 34%),
22
+ var(--fbf-paper);
23
+ border: 1px solid var(--fbf-line);
24
+ border-radius: 24px;
25
+ box-shadow: var(--fbf-shadow);
26
+ }
27
+
28
+ .fbf-page *,
29
+ .fbf-page *::before,
30
+ .fbf-page *::after {
31
+ box-sizing: border-box;
32
+ }
33
+
34
+ .fbf-hero {
35
+ position: relative;
36
+ padding: clamp(2.25rem, 7vw, 5.25rem) clamp(1.5rem, 7vw, 5.25rem) clamp(2.5rem, 6vw, 4.5rem);
37
+ }
38
+
39
+ .fbf-hero::after {
40
+ position: absolute;
41
+ right: clamp(1.25rem, 5vw, 3.5rem);
42
+ bottom: 0;
43
+ left: clamp(1.25rem, 5vw, 3.5rem);
44
+ height: 1px;
45
+ content: "";
46
+ background: linear-gradient(90deg, transparent, var(--fbf-line) 12%, var(--fbf-line) 88%, transparent);
47
+ }
48
+
49
+ .fbf-reel {
50
+ display: inline-flex;
51
+ align-items: center;
52
+ justify-content: center;
53
+ min-width: 3.4rem;
54
+ height: 2.35rem;
55
+ margin-bottom: 2.25rem;
56
+ padding: 0 0.72rem;
57
+ color: white;
58
+ font-family: "Space Grotesk", sans-serif;
59
+ font-size: 0.82rem;
60
+ font-weight: 700;
61
+ letter-spacing: 0.08em;
62
+ background: var(--fbf-ink);
63
+ border-radius: 999px;
64
+ box-shadow: 0 8px 22px rgba(23, 21, 31, 0.2);
65
  }
66
 
67
+ .fbf-reel span {
68
+ margin: 0 0.2rem;
69
+ color: var(--fbf-orange);
70
+ font-size: 0.58rem;
71
+ }
72
+
73
+ .fbf-eyebrow,
74
+ .fbf-kicker {
75
+ margin: 0 0 0.9rem;
76
+ color: var(--fbf-purple);
77
+ font-size: 0.7rem;
78
+ font-weight: 700;
79
+ letter-spacing: 0.17em;
80
+ }
81
+
82
+ .fbf-page h1,
83
+ .fbf-page h2,
84
+ .fbf-page h3,
85
+ .fbf-page p {
86
  margin-top: 0;
87
  }
88
 
89
+ .fbf-page h1,
90
+ .fbf-page h2,
91
+ .fbf-page h3 {
92
+ font-family: "Space Grotesk", "DM Sans", sans-serif;
 
93
  }
94
 
95
+ .fbf-page h1 {
96
+ max-width: 760px;
97
+ margin-bottom: 1.25rem;
98
+ font-size: clamp(2.55rem, 7.5vw, 5.7rem);
99
+ font-weight: 700;
100
+ line-height: 0.98;
101
+ letter-spacing: -0.055em;
102
+ }
103
+
104
+ .fbf-lead {
105
+ max-width: 670px;
106
+ margin-bottom: 0;
107
+ color: var(--fbf-muted);
108
+ font-size: clamp(1rem, 2.4vw, 1.25rem);
109
+ line-height: 1.62;
110
+ }
111
+
112
+ .fbf-actions {
113
+ display: flex;
114
+ flex-wrap: wrap;
115
+ gap: 0.75rem;
116
+ margin-top: 2rem;
117
+ }
118
+
119
+ .fbf-button {
120
+ display: inline-flex;
121
+ align-items: center;
122
+ justify-content: center;
123
+ min-height: 2.85rem;
124
+ padding: 0.7rem 1.1rem;
125
+ font-size: 0.9rem;
126
+ font-weight: 700;
127
+ text-decoration: none;
128
+ border: 1px solid transparent;
129
+ border-radius: 999px;
130
+ transition: transform 160ms ease, box-shadow 160ms ease, border-color 160ms ease;
131
+ }
132
+
133
+ .fbf-button:hover {
134
+ transform: translateY(-2px);
135
+ }
136
+
137
+ .fbf-button-primary {
138
+ color: white;
139
+ background: linear-gradient(135deg, var(--fbf-purple), var(--fbf-violet));
140
+ box-shadow: 0 10px 24px rgba(109, 40, 217, 0.22);
141
+ }
142
+
143
+ .fbf-button-primary span {
144
+ margin-left: 0.45rem;
145
+ }
146
+
147
+ .fbf-button-secondary {
148
+ color: var(--fbf-ink);
149
+ background: rgba(255, 255, 255, 0.7);
150
+ border-color: var(--fbf-line);
151
+ }
152
+
153
+ .fbf-button-secondary:hover {
154
+ border-color: rgba(109, 40, 217, 0.35);
155
+ }
156
+
157
+ .fbf-work {
158
+ padding: clamp(2.25rem, 6vw, 4.5rem) clamp(1.5rem, 7vw, 5.25rem);
159
+ }
160
+
161
+ .fbf-section-heading {
162
+ display: grid;
163
+ grid-template-columns: minmax(110px, 0.35fr) minmax(0, 1fr);
164
+ gap: 1.5rem;
165
+ align-items: start;
166
+ margin-bottom: 2rem;
167
+ }
168
+
169
+ .fbf-section-heading h2 {
170
+ max-width: 590px;
171
+ margin-bottom: 0;
172
+ font-size: clamp(1.65rem, 4vw, 2.65rem);
173
+ line-height: 1.08;
174
+ letter-spacing: -0.035em;
175
+ }
176
+
177
+ .fbf-grid {
178
+ display: grid;
179
+ grid-template-columns: repeat(2, minmax(0, 1fr));
180
+ gap: 0.9rem;
181
+ }
182
+
183
+ .fbf-project {
184
+ min-height: 205px;
185
+ padding: 1.45rem;
186
+ background: var(--fbf-panel);
187
+ border: 1px solid var(--fbf-line);
188
+ border-radius: 18px;
189
+ backdrop-filter: blur(8px);
190
+ transition: transform 160ms ease, border-color 160ms ease, box-shadow 160ms ease;
191
+ }
192
+
193
+ .fbf-project:hover {
194
+ transform: translateY(-3px);
195
+ border-color: rgba(109, 40, 217, 0.25);
196
+ box-shadow: 0 14px 30px rgba(55, 29, 91, 0.08);
197
+ }
198
+
199
+ .fbf-icon {
200
+ display: flex;
201
+ align-items: center;
202
+ justify-content: center;
203
+ width: 2.2rem;
204
+ height: 2.2rem;
205
+ margin-bottom: 2rem;
206
+ color: var(--fbf-purple);
207
+ font-size: 1.05rem;
208
+ background: rgba(109, 40, 217, 0.08);
209
+ border-radius: 10px;
210
+ }
211
+
212
+ .fbf-project:nth-child(2) .fbf-icon,
213
+ .fbf-project:nth-child(4) .fbf-icon {
214
+ color: #c2410c;
215
+ background: rgba(249, 115, 22, 0.1);
216
+ }
217
+
218
+ .fbf-project h3 {
219
+ margin-bottom: 0.55rem;
220
+ font-size: 1.05rem;
221
+ letter-spacing: -0.015em;
222
+ }
223
+
224
+ .fbf-project p {
225
+ margin-bottom: 0;
226
+ color: var(--fbf-muted);
227
+ font-size: 0.88rem;
228
+ line-height: 1.58;
229
+ }
230
+
231
+ .fbf-footer {
232
+ display: flex;
233
+ align-items: center;
234
+ justify-content: space-between;
235
+ gap: 1rem;
236
+ padding: 1.3rem clamp(1.5rem, 7vw, 5.25rem);
237
+ color: var(--fbf-muted);
238
+ font-size: 0.8rem;
239
+ background: rgba(109, 40, 217, 0.045);
240
+ border-top: 1px solid var(--fbf-line);
241
  }
242
 
243
+ .fbf-footer p {
244
  margin-bottom: 0;
245
  }
246
+
247
+ .fbf-footer a {
248
+ color: var(--fbf-purple);
249
+ font-weight: 700;
250
+ text-decoration: none;
251
+ }
252
+
253
+ .fbf-footer a:hover {
254
+ text-decoration: underline;
255
+ }
256
+
257
+ @media (max-width: 640px) {
258
+ .fbf-page {
259
+ border-radius: 18px;
260
+ }
261
+
262
+ .fbf-section-heading,
263
+ .fbf-grid {
264
+ grid-template-columns: 1fr;
265
+ }
266
+
267
+ .fbf-section-heading {
268
+ gap: 0.3rem;
269
+ }
270
+
271
+ .fbf-actions,
272
+ .fbf-footer {
273
+ align-items: stretch;
274
+ flex-direction: column;
275
+ }
276
+
277
+ .fbf-button {
278
+ width: 100%;
279
+ }
280
+
281
+ .fbf-project {
282
+ min-height: auto;
283
+ }
284
+
285
+ .fbf-icon {
286
+ margin-bottom: 1.25rem;
287
+ }
288
+ }
289
+
290
+ @media (prefers-reduced-motion: reduce) {
291
+ .fbf-button,
292
+ .fbf-project {
293
+ transition: none;
294
+ }
295
+ }
296
+
297
+ @media (prefers-color-scheme: dark) {
298
+ .fbf-page {
299
+ --fbf-ink: #f8f5ff;
300
+ --fbf-muted: #b9b0c6;
301
+ --fbf-paper: #17131d;
302
+ --fbf-panel: rgba(34, 27, 43, 0.82);
303
+ --fbf-line: rgba(233, 225, 244, 0.13);
304
+ --fbf-purple: #b69cff;
305
+ --fbf-violet: #8b5cf6;
306
+ --fbf-shadow: 0 24px 70px rgba(0, 0, 0, 0.24);
307
+ }
308
+
309
+ .fbf-button-primary {
310
+ color: white;
311
+ }
312
+
313
+ .fbf-button-secondary {
314
+ color: var(--fbf-ink);
315
+ background: rgba(255, 255, 255, 0.035);
316
+ }
317
+ }