Usage
The standard behavior of vue-semantic-structure defines the most common approach for the use of HTML structure components.
In this structure, the main content contains different modules (example: Stage (Hero), Text-Image, Gallery, etc.).
The main structure is in the <main> tag, which contains the main components.
<template>
<ContentContainer>
<header class="hero">…</header>
<ContentContainer class="text-image">…</ContentContainer>
<ContentContainer class="gallery">…</ContentContainer>
</ContentContainer>
</template>
<script setup>
import { ContentContainer } from 'vue-semantic-structure';
</script><main>
<header class="hero">…</header>
<article class="text-image">…</article>
<article class="gallery">…</article>
</main>Extended example
The behavior of the ContentContainer can also be adapted for blog article pages.
Here, an <article> is often used in the <main> tag, for which the ContentContainer must be adapted.
The rootTags property must be extended by an <article> (e.g. ['main', 'article']).
It is recommended to create a separate component that extends the ContentContainer.
CustomContentContainer.vue
<template>
<ContentContainer :root-tags="['main', 'article']">
<slot />
</ContentContainer>
</template>
<script setup>
import { ContentContainer } from 'vue-semantic-structure';
</script>In comparison to the basic application, the entire content is enclosed in another CustomContentContainer (e.g. ContentContainer), which represents the <article> tag.
<template>
<CustomContentContainer>
<CustomContentContainer>
<header class="hero">…</header>
<CustomContentContainer class="text-image">…</CustomContentContainer>
<CustomContentContainer class="gallery">…</CustomContentContainer>
</CustomContentContainer>
</CustomContentContainer>
</template>
<script setup>
import { ContentContainer } from 'vue-semantic-structure';
</script><main>
<article>
<header class="hero">…</header>
<section class="text-image">…</section>
<section class="gallery">…</section>
</article>
</main>