Design system & templates
A live gallery of every PhyloFlask component — copy the markup from here for consistent, polished pages. Full spec in docs/DESIGN.md.
Colour tokens
Use the CSS variables, never raw hex.
--ink
#111827
#111827
--accent
#2f6bff
#2f6bff
--teal
#0bb39a
#0bb39a
coral
#e44c65
#e44c65
--text-2
#586074
#586074
--surface
#ffffff
#ffffff
Buttons
.futuristic-btn (primary) · .futuristic-btn-secondary · disabled.
Inputs & select
Drop-zone + file pill
Wire with Phylo.dropzone({zone, input, pill}).
Drop a file here
or click to browse · .csv
Stepper
Step 1
2 Step 2
3 Step 3
Status, loader & note
Info — processing…
Success — done.
Error — something went wrong.
Working…this can take a moment
7 domains → 3 clusters (modularity 0.71).
Cards
Callouts & badges
For biologists For programmers
Bio callout
Left-accent info box for biology notes.CS callout
Left-accent info box for computing notes.Copy: tool-page scaffold
{% extends "tools.html" %}
{% block content %}
<section class="wrapper style1 fade-up"><div class="inner">
<div class="tool-stepper">…</div>
<h1>Tool name</h1>
<p>One-line intro.</p>
<div id="dz" class="dropzone">
<input type="file" id="f" accept=".csv">
<div class="dz-icon"><i class="fas fa-upload"></i></div>
<p class="dz-title">Drop a file here</p><p class="dz-hint">or click to browse</p>
</div>
<div id="pill" class="file-pill" style="display:none"></div>
<button class="futuristic-btn"><i class="fas fa-play"></i> Start</button>
<div id="status" class="tool-status"></div>
</div></section>
<script>
Phylo.dropzone({ zone:document.getElementById('dz'),
input:document.getElementById('f'), pill:document.getElementById('pill') });
</script>
{% endblock %}