Files
railiance-apps/charts/reuse-surface/templates/landing-configmap.yaml

136 lines
4.1 KiB
YAML

{{- if .Values.landing.enabled }}
apiVersion: v1
kind: ConfigMap
metadata:
name: {{ include "reuse.landingFullname" . }}
labels:
{{- include "reuse.labels" . | nindent 4 }}
app.kubernetes.io/component: landing
data:
index.html: |
{{ if .Values.landing.html }}
{{ tpl .Values.landing.html . | nindent 4 }}
{{ else }}
<!doctype html>
<html lang="en">
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
{{- if .Values.landing.noindex }}
<meta name="robots" content="noindex,nofollow">
{{- end }}
{{- if and .Values.landing.redirect.enabled .Values.landing.redirect.target }}
<meta http-equiv="refresh" content="{{ .Values.landing.redirect.delaySeconds }}; url={{ .Values.landing.redirect.target }}">
{{- end }}
<title>{{ .Values.landing.title }}</title>
<style>
:root {
color-scheme: light;
--ink: #1d2733;
--muted: #536271;
--line: #d9e0e7;
--paper: #f8fafc;
--accent: #2066a8;
--accent-dark: #164b7e;
}
* {
box-sizing: border-box;
}
body {
margin: 0;
min-height: 100vh;
font-family: ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
color: var(--ink);
background: var(--paper);
display: grid;
place-items: center;
padding: 32px 18px;
}
main {
width: min(100%, 720px);
border: 1px solid var(--line);
border-radius: 8px;
background: #ffffff;
padding: clamp(28px, 5vw, 48px);
box-shadow: 0 18px 48px rgba(29, 39, 51, 0.08);
}
.eyebrow {
margin: 0 0 12px;
color: var(--accent-dark);
font-size: 0.86rem;
font-weight: 700;
text-transform: uppercase;
}
h1 {
margin: 0;
font-size: clamp(2rem, 7vw, 3rem);
line-height: 1.05;
}
p {
max-width: 62ch;
margin: 18px 0 0;
color: var(--muted);
font-size: 1rem;
line-height: 1.65;
}
.actions {
display: flex;
flex-wrap: wrap;
gap: 12px;
margin-top: 28px;
}
a {
color: var(--accent);
}
.button {
display: inline-flex;
min-height: 44px;
align-items: center;
justify-content: center;
border-radius: 6px;
background: var(--accent);
color: #ffffff;
padding: 0 18px;
font-weight: 700;
text-decoration: none;
}
.button:focus,
.button:hover {
background: var(--accent-dark);
}
.links {
margin-top: 26px;
padding-top: 22px;
border-top: 1px solid var(--line);
display: grid;
gap: 10px;
}
</style>
</head>
<body>
<main>
<p class="eyebrow">{{ .Values.landing.eyebrow }}</p>
<h1>{{ .Values.landing.title }}</h1>
<p>{{ .Values.landing.body }}</p>
{{- $target := .Values.landing.primaryUrl }}
{{- if and .Values.landing.redirect.enabled .Values.landing.redirect.target }}
{{- $target = .Values.landing.redirect.target }}
{{- end }}
{{- if $target }}
<div class="actions">
<a class="button" href="{{ $target }}">{{ .Values.landing.buttonLabel }}</a>
</div>
{{- end }}
{{- if .Values.landing.links }}
<nav class="links" aria-label="Service links">
{{- range .Values.landing.links }}
<a href="{{ .url }}">{{ .label }}</a>
{{- end }}
</nav>
{{- end }}
</main>
</body>
</html>
{{ end }}
{{- end }}