Skip to content

Commit 37a9fef

Browse files
committed
Polish docs homepage design
1 parent a62c8ef commit 37a9fef

2 files changed

Lines changed: 180 additions & 36 deletions

File tree

docs/index.md

Lines changed: 49 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -1,50 +1,77 @@
1-
<section class="df-hero" markdown>
1+
---
2+
hide:
3+
- navigation
4+
- toc
5+
- edit
6+
---
27

3-
# Welcome to DataFoundry
8+
<div class="df-home" markdown>
49

5-
DataFoundry is a governed data-agent workbench for enterprise data tasks. It turns natural-language analysis into schema-aware, read-only, replayable workflows with audit-grade evidence.
10+
<section class="df-home-hero" markdown>
11+
12+
<p class="df-kicker">Open-source data agent workbench</p>
13+
14+
# DataFoundry
15+
16+
Governed data-agent workflows for enterprise data tasks. Turn natural-language analysis into schema-aware, read-only, replayable work with audit-grade evidence.
617

718
<div class="df-actions" markdown>
8-
[English documentation](en/index.md){ .df-button .df-button-primary }
9-
[简体中文文档](zh/index.md){ .df-button }
10-
[Quick start](en/quick-start.md){ .df-button }
19+
[Quick start](en/quick-start.md){ .df-button .df-button-primary }
20+
[Read docs](en/index.md){ .df-button }
1121
[GitHub](https://github.com/datagallery-lab/datafoundry){ .df-button }
1222
</div>
1323

1424
</section>
1525

26+
<figure class="df-home-shot" markdown>
1627
![DataFoundry web workbench](assets/readme/gui-demo.gif){ .df-shot }
28+
<figcaption>Web workbench, terminal workflow, and backend runtime share one governed task model.</figcaption>
29+
</figure>
30+
31+
<section class="df-proof-grid" markdown>
32+
33+
<div class="df-proof" markdown>
34+
### Governed Execution
35+
Schema inspection, datasource policy, read-only SQL, row limits, masking, and audit stay behind the Data Gateway.
36+
</div>
37+
38+
<div class="df-proof" markdown>
39+
### Replayable Work
40+
Web, TUI, and API clients consume the same run state, event stream, artifacts, and task history.
41+
</div>
42+
43+
<div class="df-proof" markdown>
44+
### Unified Context
45+
Files, knowledge, skills, tools, memory, and datasource choices are compiled under backend policy.
46+
</div>
1747

18-
## Start here
48+
</section>
1949

20-
<div class="df-grid" markdown>
50+
## Start with the right path
51+
52+
<div class="df-grid df-route-grid" markdown>
2153

2254
<div class="df-card" markdown>
23-
### User Guide
24-
Run DataFoundry locally, connect data sources, and use the Web workbench or TUI.
55+
### Try locally
56+
Run the workbench and ask your first question against the built-in DuckDB demo.
2557

26-
[Open guide](en/overview.md)
58+
[Quick start](en/quick-start.md)
2759
</div>
2860

2961
<div class="df-card" markdown>
30-
### Developer Guide
31-
Understand the runtime architecture, security boundaries, and integration surface.
62+
### Understand the system
63+
Review the runtime, security boundary, and Data Gateway architecture.
3264

33-
[Read architecture](en/architecture/overview.md)
65+
[Architecture](en/architecture/overview.md)
3466
</div>
3567

3668
<div class="df-card" markdown>
37-
### API Reference
69+
### Integrate APIs
3870
Use REST configuration APIs and the Agent Runtime / AG-UI entry point.
3971

40-
[Browse APIs](en/reference/rest-api.md)
72+
[API reference](en/reference/rest-api.md)
4173
</div>
4274

4375
</div>
4476

45-
## Why DataFoundry
46-
47-
- **Schema-first analysis**: the agent inspects datasource structure before controlled execution.
48-
- **Read-only data boundary**: Data Gateway owns connection policy, SQL guards, limits, masking, and audit.
49-
- **Replayable runs**: Web, TUI, and API clients share one event stream, task state, and artifact model.
50-
- **Governed context**: files, knowledge, skills, tools, memory, and datasource selections are compiled under backend policy.
77+
</div>

docs/stylesheets/extra.css

Lines changed: 131 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,21 @@
99
box-shadow: none;
1010
}
1111

12+
.md-header__button,
13+
.md-header__source {
14+
align-items: center;
15+
}
16+
17+
.md-header__button.md-logo {
18+
display: inline-flex;
19+
justify-content: center;
20+
}
21+
22+
.md-header__button.md-logo :is(img, svg) {
23+
width: 1.05rem;
24+
height: 1.05rem;
25+
}
26+
1227
.md-tabs {
1328
border-bottom: 1px solid var(--md-default-fg-color--lightest);
1429
}
@@ -23,23 +38,50 @@
2338
color: #111827;
2439
}
2540

26-
.md-typeset .df-hero {
27-
margin: 1.5rem 0 2rem;
41+
body:has(.df-home) .md-tabs,
42+
body:has(.df-home) .md-content__button,
43+
body:has(.df-home) .md-footer__inner {
44+
display: none;
45+
}
46+
47+
body:has(.df-home) .md-main__inner {
48+
margin-top: 0;
49+
}
50+
51+
.md-typeset .df-home {
52+
max-width: 68rem;
53+
margin: 0 auto;
54+
}
55+
56+
.md-typeset .df-home-hero {
57+
padding: 3rem 0 1.5rem;
2858
text-align: center;
2959
}
3060

31-
.md-typeset .df-hero h1 {
32-
margin-bottom: 0.6rem;
33-
font-size: 2.4rem;
34-
font-weight: 500;
61+
.md-typeset .df-kicker {
62+
margin: 0 0 0.55rem;
63+
color: #4b5563;
64+
font-size: 0.68rem;
65+
font-weight: 700;
66+
letter-spacing: 0;
67+
text-transform: uppercase;
68+
}
69+
70+
.md-typeset .df-home-hero h1 {
71+
margin: 0 0 0.75rem;
72+
font-size: 2.8rem;
73+
font-weight: 600;
74+
letter-spacing: 0;
75+
line-height: 1.08;
3576
}
3677

37-
.md-typeset .df-hero p {
78+
.md-typeset .df-home-hero > p:not(.df-kicker) {
3879
margin-left: auto;
3980
margin-right: auto;
40-
max-width: 46rem;
41-
color: var(--md-default-fg-color--light);
42-
font-size: 1.02rem;
81+
max-width: 48rem;
82+
color: #4b5563;
83+
font-size: 1rem;
84+
line-height: 1.58;
4385
}
4486

4587
.md-typeset .df-actions {
@@ -51,12 +93,18 @@
5193
}
5294

5395
.md-typeset .df-button {
54-
display: inline-block;
96+
display: inline-flex;
97+
align-items: center;
98+
justify-content: center;
99+
min-width: 8.8rem;
100+
min-height: 2.35rem;
55101
border: 1px solid var(--md-default-fg-color--lightest);
56102
border-radius: 0.25rem;
57-
padding: 0.45rem 0.8rem;
103+
padding: 0.48rem 0.9rem;
58104
color: var(--md-typeset-color);
59105
font-weight: 600;
106+
line-height: 1.2;
107+
text-align: center;
60108
}
61109

62110
.md-typeset .df-button-primary {
@@ -65,6 +113,46 @@
65113
color: #ffffff;
66114
}
67115

116+
.md-typeset .df-home-shot {
117+
max-width: 58rem;
118+
margin: 1.5rem auto 2.3rem;
119+
text-align: center;
120+
}
121+
122+
.md-typeset .df-home-shot figcaption {
123+
margin-top: 0.6rem;
124+
color: var(--md-default-fg-color--light);
125+
font-size: 0.72rem;
126+
}
127+
128+
.md-typeset .df-proof-grid {
129+
display: grid;
130+
grid-template-columns: repeat(3, minmax(0, 1fr));
131+
gap: 0.75rem;
132+
margin: 0 auto 2.4rem;
133+
}
134+
135+
.md-typeset .df-proof {
136+
min-height: 8rem;
137+
border: 1px solid var(--md-default-fg-color--lightest);
138+
border-radius: 0.35rem;
139+
padding: 0.9rem 1rem;
140+
background: var(--md-code-bg-color);
141+
}
142+
143+
.md-typeset .df-proof h3 {
144+
margin: 0 0 0.4rem;
145+
font-size: 0.8rem;
146+
font-weight: 650;
147+
letter-spacing: 0;
148+
line-height: 1.35;
149+
}
150+
151+
.md-typeset .df-proof p {
152+
margin: 0;
153+
color: #4b5563;
154+
}
155+
68156
.md-typeset .df-grid {
69157
display: grid;
70158
grid-template-columns: repeat(auto-fit, minmax(14rem, 1fr));
@@ -81,16 +169,45 @@
81169

82170
.md-typeset .df-card h3 {
83171
margin: 0 0 0.35rem;
84-
font-size: 0.92rem;
172+
font-size: 0.8rem;
173+
font-weight: 650;
174+
letter-spacing: 0;
175+
line-height: 1.35;
85176
}
86177

87178
.md-typeset .df-card p {
88179
margin: 0;
89-
color: var(--md-default-fg-color--light);
180+
color: #4b5563;
90181
}
91182

92183
.md-typeset .df-shot {
184+
display: block;
185+
width: 100%;
93186
border: 1px solid var(--md-default-fg-color--lightest);
94187
border-radius: 0.45rem;
95188
box-shadow: 0 12px 36px rgba(15, 23, 42, 0.08);
96189
}
190+
191+
@media screen and (max-width: 76.1875em) {
192+
.md-typeset .df-home-hero {
193+
padding-top: 2.2rem;
194+
}
195+
}
196+
197+
@media screen and (max-width: 44.9375em) {
198+
.md-typeset .df-home-hero {
199+
padding: 1.7rem 0 1rem;
200+
}
201+
202+
.md-typeset .df-home-hero h1 {
203+
font-size: 2.2rem;
204+
}
205+
206+
.md-typeset .df-button {
207+
width: 100%;
208+
}
209+
210+
.md-typeset .df-proof-grid {
211+
grid-template-columns: 1fr;
212+
}
213+
}

0 commit comments

Comments
 (0)