Files
rhema-claw/web/claw/app/components/PageHeader.vue
T
vhaudiquet 81da26b955 feat(rhema-code): add the colors setting with four palettes
The stored `colors` key names a palette — rhema (the default,
Jadeite), aquamarine, black-and-white, or dracula — and the
Appearance page of /settings cycles it live, like the theme and
icon toggles beside it. Each palette carries a dark and a light
appearance under the existing `theme` key; dracula's light side is
derived, the official palette ships only dark.

The appearance decision moves off token comparison: Theme now
answers is_dark() from the ground/text luminance, so palettes
beyond the original two get the right per-profile fallback tones.
2026-10-17 04:28:31 +08:00

49 lines
807 B
Vue

<script setup lang="ts">
// The one page header: title, an optional subtitle line, and the page's
// actions (Save/Discard-style buttons) on the right.
defineProps<{
title: string
subtitle?: string
}>()
</script>
<template>
<header class="page-head">
<div class="text">
<h1>{{ title }}</h1>
<p v-if="subtitle">{{ subtitle }}</p>
</div>
<div class="actions">
<slot name="actions" />
</div>
</header>
</template>
<style scoped>
.page-head {
display: flex;
align-items: flex-start;
justify-content: space-between;
gap: 16px;
padding: 18px 24px 14px;
}
h1 {
margin: 0;
font-size: 19px;
font-weight: 700;
}
.text p {
margin: 2px 0 0;
color: var(--text3);
}
.actions {
display: flex;
align-items: center;
gap: 8px;
flex: none;
}
</style>