Match admonition colors to the original site and allow hiding their icon

This commit is contained in:
Djeex
2026-08-30 17:38:13 +02:00
parent 04268535a6
commit 2608bf64eb
6 changed files with 121 additions and 2 deletions
+34
View File
@@ -37,6 +37,40 @@ export default defineAppConfig({
header: 'bg-[#121110] border-[#201e1b]', header: 'bg-[#121110] border-[#201e1b]',
}, },
}, },
// Exact colors measured on the old site's ::alert boxes (note=info,
// tip=success, warning=warning, caution=danger/error).
callout: {
compoundVariants: [
{
color: 'info',
class: {
base: 'border-[#002235] bg-[#00131D] text-[#64C7FF]',
icon: 'text-[#64C7FF]',
},
},
{
color: 'success',
class: {
base: 'border-[#002817] bg-[#00190F] text-[#3CEEA5]',
icon: 'text-[#3CEEA5]',
},
},
{
color: 'warning',
class: {
base: 'border-[#292100] bg-[#1B1500] text-[#FFDC4E]',
icon: 'text-[#FFDC4E]',
},
},
{
color: 'error',
class: {
base: 'border-[#340A01] bg-[#1C0301] text-[#FFA692]',
icon: 'text-[#FFA692]',
},
},
],
},
}, },
header: { header: {
slots: { slots: {
+22
View File
@@ -0,0 +1,22 @@
<script setup lang="ts">
import { useAppConfig } from '#imports'
import Callout from '#ui/components/prose/Callout.vue'
// Set `::caution{icon=""}` in the markdown to hide the default icon for
// that one instance (useful when the body already starts with its own
// emoji).
const props = withDefaults(defineProps<{ icon?: string }>(), {
icon: undefined,
})
const appConfig = useAppConfig()
const icon = computed(() => props.icon !== undefined ? props.icon : appConfig.ui.icons.caution)
</script>
<template>
<Callout
color="error"
:icon="icon"
>
<slot mdc-unwrap="p" />
</Callout>
</template>
+21
View File
@@ -0,0 +1,21 @@
<script setup lang="ts">
import { useAppConfig } from '#imports'
import Callout from '#ui/components/prose/Callout.vue'
// Set `::note{icon=""}` in the markdown to hide the default icon for that
// one instance (useful when the body already starts with its own emoji).
const props = withDefaults(defineProps<{ icon?: string }>(), {
icon: undefined,
})
const appConfig = useAppConfig()
const icon = computed(() => props.icon !== undefined ? props.icon : appConfig.ui.icons.info)
</script>
<template>
<Callout
color="info"
:icon="icon"
>
<slot mdc-unwrap="p" />
</Callout>
</template>
+21
View File
@@ -0,0 +1,21 @@
<script setup lang="ts">
import { useAppConfig } from '#imports'
import Callout from '#ui/components/prose/Callout.vue'
// Set `::tip{icon=""}` in the markdown to hide the default icon for that
// one instance (useful when the body already starts with its own emoji).
const props = withDefaults(defineProps<{ icon?: string }>(), {
icon: undefined,
})
const appConfig = useAppConfig()
const icon = computed(() => props.icon !== undefined ? props.icon : appConfig.ui.icons.tip)
</script>
<template>
<Callout
color="success"
:icon="icon"
>
<slot mdc-unwrap="p" />
</Callout>
</template>
+22
View File
@@ -0,0 +1,22 @@
<script setup lang="ts">
import { useAppConfig } from '#imports'
import Callout from '#ui/components/prose/Callout.vue'
// Set `::warning{icon=""}` in the markdown to hide the default icon for
// that one instance (useful when the body already starts with its own
// emoji).
const props = withDefaults(defineProps<{ icon?: string }>(), {
icon: undefined,
})
const appConfig = useAppConfig()
const icon = computed(() => props.icon !== undefined ? props.icon : appConfig.ui.icons.warning)
</script>
<template>
<Callout
color="warning"
:icon="icon"
>
<slot mdc-unwrap="p" />
</Callout>
</template>
+1 -2
View File
@@ -5,9 +5,8 @@ description: Learn how NAT, port forwarding, and DHCP work on a home router. Con
:ellipsis{left=0px width=40rem top=10rem blur=140px zIndex=60} :ellipsis{left=0px width=40rem top=10rem blur=140px zIndex=60}
# Router and NAT
::note ::note{icon=""}
🎯 __Goals:__ 🎯 __Goals:__
- Understand how port forwarding works - Understand how port forwarding works