-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathindex.html
More file actions
216 lines (199 loc) · 10.2 KB
/
Copy pathindex.html
File metadata and controls
216 lines (199 loc) · 10.2 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<meta name="color-scheme" content="light dark">
<meta name="theme-color" content="#1F2A33">
<title>RAD Programmer — developer tooling for the Delphi ecosystem</title>
<meta name="description" content="RAD Programmer builds developer tooling for the Delphi ecosystem, starting with radFormatter: a non-destructive, CST-aware Delphi source code formatter.">
<link rel="canonical" href="https://radprogrammer.com/">
<meta property="og:type" content="website">
<meta property="og:site_name" content="RAD Programmer">
<meta property="og:title" content="RAD Programmer — developer tooling for the Delphi ecosystem">
<meta property="og:description" content="RAD Programmer builds developer tooling for the Delphi ecosystem, starting with radFormatter: a non-destructive, CST-aware Delphi source code formatter.">
<meta property="og:url" content="https://radprogrammer.com/">
<meta property="og:image" content="https://radprogrammer.com/assets/og-radprogrammer.png">
<meta property="og:image:width" content="1200">
<meta property="og:image:height" content="630">
<meta name="twitter:card" content="summary_large_image">
<link rel="icon" type="image/svg+xml" href="assets/radprogrammer-logo.svg">
<link rel="stylesheet" href="assets/site.css">
<style>
/* hub header wordmark */
.brandmark{display:flex;align-items:center;gap:12px;text-decoration:none}
.brandmark img{height:40px;width:auto;background:#fff;border-radius:9px;padding:3px}
.brandmark .word{font-family:var(--display);font-weight:800;font-size:1.15rem;letter-spacing:-.01em;color:#fff}
.brandmark .word b{color:var(--rad-red);font-weight:800}
/* hero — light, mascot-led (inverse of the product pages) */
.hub-hero{background:var(--paper);border-bottom:1px solid var(--line);padding:72px 0}
.hub-hero .cols{display:grid;grid-template-columns:1.2fr .8fr;gap:48px;align-items:center}
.hub-hero h1{font-size:clamp(2rem,4.5vw,3rem);letter-spacing:-.02em}
.hub-hero h1 b{color:var(--rad-red);font-weight:800}
.hub-hero .sub{font-size:1.15rem;color:var(--steel);max-width:30em}
.hub-hero .actions{display:flex;gap:14px;margin-top:26px;flex-wrap:wrap}
.btn.dark{background:var(--ink);color:#fff}
.btn.dark:hover{background:#101820}
.btn.outline{border:2px solid var(--line);color:var(--fg)}
.btn.outline:hover{border-color:var(--steel)}
.hub-hero .mascot{justify-self:center}
.hub-hero .mascot img{max-height:320px;width:auto}
/* featured product band — dark, hands off to the product identity */
.featured{background:linear-gradient(180deg,var(--ink) 0%,#25323d 100%);color:var(--mist);padding:64px 0}
.featured .card{display:grid;grid-template-columns:auto 1fr auto;gap:32px;align-items:center;background:#162028;border:1px solid var(--slate);border-radius:16px;padding:34px 38px}
.featured .tile{width:96px;height:96px}
.featured h2{color:#fff;margin:0 0 .2em;font-size:1.6rem}
.featured h2 b{color:var(--rad-red)}
.featured p{margin:0;color:#AEC0CD;max-width:38em}
.featured .go{display:flex;flex-direction:column;gap:10px}
.featured .meta{font-family:var(--mono);font-size:.78rem;color:#8FA3B1;margin-top:10px}
.featured .meta span{background:#22303B;border-radius:5px;padding:.15em .55em;margin-right:6px;display:inline-block;margin-bottom:6px}
/* family strip */
.family{padding:64px 0}
.family .tiles{display:flex;gap:18px;margin-top:26px;align-items:center;flex-wrap:wrap}
.family .tiles a{display:block;line-height:0;border-radius:16px;transition:transform .12s ease}
.family .tiles a:hover{transform:translateY(-3px)}
.family .tiles img{width:72px;height:72px;border-radius:16px}
.family .tiles .ghost{width:72px;height:72px;border-radius:16px;border:2px dashed var(--line)}
.family .lede{max-width:44em;color:var(--steel)}
/* product suite grid — dark band */
.suite{background:linear-gradient(180deg,var(--ink) 0%,#25323d 100%);color:var(--mist);padding:64px 0}
.suite h2{color:#fff}
.suite .lede{max-width:46em;color:#AEC0CD;margin-top:.2em}
.grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(270px,1fr));gap:16px;margin-top:30px}
.pcard{display:flex;flex-direction:column;gap:12px;background:#162028;border:1px solid var(--slate);border-radius:16px;padding:24px 22px;text-decoration:none;transition:transform .12s ease,border-color .12s ease}
.pcard:hover{transform:translateY(-3px);border-color:var(--rad-red)}
.pcard.lead{border-color:rgba(225,38,46,.55);box-shadow:inset 0 0 0 1px rgba(225,38,46,.25)}
.pcard .top{display:flex;align-items:center;gap:13px}
.ptile{width:50px;height:50px;flex:0 0 50px}
.ptile img{width:50px;height:50px;border-radius:12px;display:block}
/* wordmark: only the rad prefix is brand red; the rest is default white */
.pname{font-family:var(--display);font-weight:800;font-size:1.12rem;letter-spacing:-.01em;color:#fff}
.pname b{color:var(--rad-red);font-weight:800}
.pcard p{margin:0;color:#AEC0CD;font-size:.92rem;line-height:1.5}
.pill{align-self:flex-start;margin-top:2px;font-family:var(--mono);font-size:.7rem;letter-spacing:.03em;padding:.22em .62em;border-radius:999px}
.pill.avail{background:rgba(64,180,110,.16);color:#7fdca6;border:1px solid rgba(64,180,110,.35)}
.pill.soon{background:#22303B;color:#8FA3B1;border:1px solid var(--slate)}
@media (max-width:860px){
.hub-hero .cols{grid-template-columns:1fr}
.hub-hero .mascot{order:-1}
.hub-hero .mascot img{max-height:200px}
.featured .card{grid-template-columns:1fr;text-align:center;justify-items:center}
}
</style>
</head>
<body>
<header class="site">
<div class="wrap nav">
<a class="brandmark" href="index.html" aria-label="RAD Programmer home">
<img src="assets/radprogrammer-logo.svg" alt="">
<span class="word"><b>RAD</b> Programmer</span>
</a>
<nav aria-label="Main">
<a href="radFormatter/index.html">radFormatter</a>
<a href="about.html">About</a>
<a href="https://github.com/radprogrammer">GitHub</a>
<a class="cta" href="radFormatter/buy.html">Buy</a>
</nav>
</div>
</header>
<!-- ================= HERO ================= -->
<div class="hub-hero">
<div class="wrap cols">
<div>
<h1><b>Rad</b> tooling for<br>Delphi developers.</h1>
<p class="sub">Building the next generation of developer tools for the RAD Studio ecosystem - from formatting and code analysis to exploration and automation.</p>
<div class="actions">
<a class="btn primary" href="#tools">Explore the tools</a>
<a class="btn outline" href="https://github.com/radprogrammer">GitHub</a>
</div>
</div>
<div class="mascot">
<img src="assets/radprogrammer-logo.svg" alt="The RAD Programmer mascot at a laptop">
</div>
</div>
</div>
<!-- ================= PRODUCT SUITE ================= -->
<section class="suite" id="tools">
<div class="wrap">
<h2><span class="stair" aria-hidden="true"><i></i><i></i><i></i></span>One suite, one standard</h2>
<p class="lede">Every RAD Programmer tool is built to the same engineering
bar: validated output, predictable behavior, no surprises in your source
tree — and nothing ever phoned home. radFormatter ships today; the
rest of the suite is in active development.</p>
<div class="grid">
<a class="pcard lead" href="radFormatter/index.html">
<div class="top">
<span class="ptile"><img src="radFormatter/assets/radformatter-icon.svg" alt=""></span>
<span class="pname"><b>rad</b>Formatter</span>
</div>
<p>Non-destructive, CST-aware source formatting. Reformats from a full
syntax tree and proves nothing but whitespace and casing changed.</p>
<span class="pill avail">Available · Alpha</span>
</a>
<a class="pcard" href="#tools" aria-disabled="true">
<div class="top">
<span class="ptile"><img src="assets/radcodescanner-icon.svg" alt=""></span>
<span class="pname"><b>rad</b>CodeScanner</span>
</div>
<p>Static analysis and configurable lint rules that read the same syntax
tree — consistent findings, zero false rewrites.</p>
<span class="pill soon">In development</span>
</a>
<a class="pcard" href="#tools" aria-disabled="true">
<div class="top">
<span class="ptile"><img src="assets/radcodecoverage-icon.svg" alt=""></span>
<span class="pname"><b>rad</b>CodeCoverage</span>
</div>
<p>Modern, dependency-free Delphi code coverage tool wired for CI.</p>
<span class="pill soon">In development</span>
</a>
<a class="pcard" href="#tools" aria-disabled="true">
<div class="top">
<span class="ptile"><img src="assets/radcallgraph-icon.svg" alt=""></span>
<span class="pname"><b>rad</b>CallGraph</span>
</div>
<p>Trace call relationships across an entire project and see how a change
ripples through the codebase before you make it.</p>
<span class="pill soon">In development</span>
</a>
</div>
</div>
</section>
<!-- ================= FOOTER ================= -->
<footer class="site">
<div class="wrap cols">
<div>
<img class="mark" src="assets/radprogrammer-logo.svg" alt="RAD Programmer">
<p><strong>RAD Programmer</strong> — developer tooling for the
Delphi ecosystem.</p>
</div>
<div>
<h3>radFormatter</h3>
<ul>
<li><a href="radFormatter/index.html">Product</a></li>
<li><a href="radFormatter/docs/radFormatter-cli.html">Documentation</a></li>
<li><a href="radFormatter/buy.html">Buy</a></li>
</ul>
</div>
<div>
<h3>Project</h3>
<ul>
<li><a href="about.html">About</a></li>
<li><a href="https://github.com/radprogrammer">GitHub</a></li>
<li><a href="https://github.com/radprogrammer/radformatter/issues">Support</a></li>
<li><a href="legal/privacy.html">Privacy</a></li>
<li><a href="legal/terms.html">Terms</a></li>
</ul>
</div>
</div>
<div class="wrap fine">
© 2026 Ideas Awakened, Inc.
Delphi and RAD Studio are trademarks of Embarcadero Technologies, Inc.;
RAD Programmer is not affiliated with Embarcadero.
· <a href="legal/privacy.html">Privacy</a>
· <a href="legal/terms.html">Terms</a>
</div>
</footer>
</body>
</html>