Features template
A responsive grid of cards, one per capability.
Preview, install and source
Everything a crew writes down
Shift handovers
A checklist each crew signs before leaving the dock.
Incident log
Timestamped entries with photos, kept in order.
Offline first
Write on the pier without signal; it syncs later.
Shared notebooks
One notebook per vessel, open to the whole crew.
Search
Find any note by vessel, crew member or date.
Exports
Hand a month of logs to the harbor master as a PDF.
Install
texuli add cardSource: FeaturesSection.svelte
<script lang="ts">
import { Card, CardDescription, CardGrid, CardHeader, CardTitle } from 'texuli/card';
/**
* Features: a responsive grid of cards, one per capability.
* Copy-ready: `texuli add card`, then replace the list.
*/
const features = [
{ title: 'Shift handovers', text: 'A checklist each crew signs before leaving the dock.' },
{ title: 'Incident log', text: 'Timestamped entries with photos, kept in order.' },
{ title: 'Offline first', text: 'Write on the pier without signal; it syncs later.' },
{ title: 'Shared notebooks', text: 'One notebook per vessel, open to the whole crew.' },
{ title: 'Search', text: 'Find any note by vessel, crew member or date.' },
{ title: 'Exports', text: 'Hand a month of logs to the harbor master as a PDF.' },
];
</script>
<section class="features" aria-labelledby="features-title">
<h3 id="features-title" class="features__title">Everything a crew writes down</h3>
<CardGrid minItemWidth="14rem">
{#each features as feature (feature.title)}
<Card>
<CardHeader>
<CardTitle level={4}>{feature.title}</CardTitle>
<CardDescription>{feature.text}</CardDescription>
</CardHeader>
</Card>
{/each}
</CardGrid>
</section>
<style>
.features {
display: grid;
gap: 1.25rem;
}
.features__title {
margin: 0;
font-size: 1.5rem;
}
</style>