Skip to content
Merged
Show file tree
Hide file tree
Changes from 43 commits
Commits
Show all changes
50 commits
Select commit Hold shift + click to select a range
0dd7385
update hero section
ikushum Oct 3, 2025
7ada3e5
create Stats component
ikushum Oct 4, 2025
303dd92
update Features component
ikushum Oct 4, 2025
1df8983
add component gallery section
ikushum Oct 4, 2025
e2ef502
spacign adjustments
ikushum Oct 7, 2025
8b04f4a
add sections to homepage
ikushum Oct 21, 2025
5bbc595
reposition
ikushum Oct 21, 2025
c8ea488
add support for playground in markup
ikushum Oct 22, 2025
eff5d2c
refactors
ikushum Oct 25, 2025
06d7a34
use typescript
ikushum Oct 25, 2025
94fe635
vuetify one cta
ikushum Oct 25, 2025
742f6be
add discord icon
ikushum Oct 25, 2025
df98926
update blog section
ikushum Oct 25, 2025
4c0e0d8
ability to select package managers
ikushum Oct 25, 2025
8cdab47
add support component
ikushum Oct 26, 2025
2a8ef34
update blog section
ikushum Oct 26, 2025
05c1466
seperate out special sponsor section
ikushum Oct 27, 2025
424959a
update vuetify tooling
ikushum Oct 27, 2025
cb0cd80
update Vuetify one
ikushum Oct 30, 2025
7e9c7ab
update component gallery section
ikushum Nov 1, 2025
bf19b0e
improve tooling section
ikushum Nov 9, 2025
1a778c7
ui updates
ikushum Nov 20, 2025
08bad05
make everything clickable
ikushum Nov 20, 2025
be8f45e
bring back to top
ikushum Nov 20, 2025
13c1eac
make store slidable
ikushum Nov 20, 2025
29e8a66
blog with image
ikushum Nov 20, 2025
5da334c
update card color
ikushum Nov 20, 2025
7c2fe3c
style adjustments
ikushum Nov 20, 2025
d0c346d
docs(homepage): minor refactor
johnleider Dec 3, 2025
a7b527d
Merge branch 'master' into feat/new-homepage
johnleider Dec 4, 2025
09c6a36
docs(home): lots of refactoring
johnleider Dec 4, 2025
a1a164f
docs: more tweaks
johnleider Dec 4, 2025
17932c7
docs: bunch of style adjustments
ikushum Dec 4, 2025
d82e909
chore: suppress browser autofill in example search fields
J-Sek Dec 4, 2025
3b31f44
Merge branch 'next' into feat/new-homepage
KaelWD Dec 26, 2025
20b1940
Merge branch 'next' into feat/new-homepage
KaelWD Dec 26, 2025
6e23c74
remove unused hoverProps
KaelWD Dec 26, 2025
7a7814d
fix code block colors
KaelWD Dec 26, 2025
974ad15
fix gradient styles
KaelWD Dec 26, 2025
cdd7d38
consistent gallery height
KaelWD Dec 26, 2025
f50b703
Merge branch 'next' into feat/new-homepage
KaelWD Dec 26, 2025
bf21688
fix theme references
KaelWD Dec 30, 2025
84e2186
docs(Home): update urls for all images, other content tweaks
johnleider Jan 21, 2026
8751cb5
docs(Alert): mb -> my
johnleider Jan 21, 2026
613319c
Merge branch 'next' into feat/new-homepage
johnleider Jan 21, 2026
3cfb21f
docs(Blogs): make blog titles links
johnleider Jan 21, 2026
99d1987
fix broken UI
ikushum Jan 22, 2026
18f45fa
implement localization
ikushum Jan 22, 2026
bdde1e8
fix item slots
KaelWD Jan 23, 2026
2dfade5
prevent appbar overflow
KaelWD Jan 23, 2026
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
3 changes: 3 additions & 0 deletions packages/docs/auto-imports.d.ts
Original file line number Diff line number Diff line change
Expand Up @@ -172,6 +172,9 @@ declare global {
export type { Component, Slot, Slots, ComponentPublicInstance, ComputedRef, DirectiveBinding, ExtractDefaultPropTypes, ExtractPropTypes, ExtractPublicPropTypes, InjectionKey, PropType, Ref, MaybeRef, MaybeRefOrGetter, VNode, WritableComputedRef } from 'vue'
import('vue')
// @ts-ignore
export type { CodeSection } from './src/composables/playground'
import('./src/composables/playground')
// @ts-ignore
export type { Category } from './src/stores/app'
import('./src/stores/app')
// @ts-ignore
Expand Down
25 changes: 21 additions & 4 deletions packages/docs/components.d.ts
Original file line number Diff line number Diff line change
Expand Up @@ -100,7 +100,6 @@ declare module 'vue' {
DocMadeWithVueAttribution: typeof import('./src/components/doc/MadeWithVueAttribution.vue')['default']
DocMadeWithVuetifyGallery: typeof import('./src/components/doc/MadeWithVuetifyGallery.vue')['default']
DocMadeWithVuetifyLink: typeof import('./src/components/doc/MadeWithVuetifyLink.vue')['default']
DocPremiumThemesGallery: typeof import('./src/components/doc/PremiumThemesGallery.vue')['default']
DocReadyForMore: typeof import('./src/components/doc/ReadyForMore.vue')['default']
DocRelatedPage: typeof import('./src/components/doc/RelatedPage.vue')['default']
DocRelatedPages: typeof import('./src/components/doc/RelatedPages.vue')['default']
Expand All @@ -119,14 +118,32 @@ declare module 'vue' {
FeaturesColorPalette: typeof import('./src/components/features/ColorPalette.vue')['default']
FeaturesSassApi: typeof import('./src/components/features/SassApi.vue')['default']
GettingStartedWireframeExamples: typeof import('./src/components/getting-started/WireframeExamples.vue')['default']
HomeActionBtns: typeof import('./src/components/home/ActionBtns.vue')['default']
HomeBlogs: typeof import('./src/components/home/Blogs.vue')['default']
HomeCommonCard: typeof import('./src/components/home/Common/Card.vue')['default']
HomeCommonGradient: typeof import('./src/components/home/Common/Gradient.vue')['default']
HomeCommonMarquee: typeof import('./src/components/home/Common/Marquee.vue')['default']
HomeCommonTitle: typeof import('./src/components/home/Common/Title.vue')['default']
HomeDiscord: typeof import('./src/components/home/Discord.vue')['default']
HomeEcosystem: typeof import('./src/components/home/Ecosystem.vue')['default']
HomeEntry: typeof import('./src/components/home/Entry.vue')['default']
HomeEpicmaxSupport: typeof import('./src/components/home/EpicmaxSupport.vue')['default']
HomeFeatures: typeof import('./src/components/home/Features.vue')['default']
HomeFooter: typeof import('./src/components/home/Footer.vue')['default']
HomeGalleryAnalytics: typeof import('./src/components/home/Gallery/Analytics.vue')['default']
HomeGalleryChatChat: typeof import('./src/components/home/Gallery/Chat/Chat.vue')['default']
HomeGalleryChatDetail: typeof import('./src/components/home/Gallery/Chat/Detail.vue')['default']
HomeGalleryChatList: typeof import('./src/components/home/Gallery/Chat/List.vue')['default']
HomeGalleryComponents: typeof import('./src/components/home/Gallery/Components.vue')['default']
HomeGalleryDashboard: typeof import('./src/components/home/Gallery/Dashboard.vue')['default']
HomeGalleryLogin: typeof import('./src/components/home/Gallery/Login.vue')['default']
HomeGallerySettings: typeof import('./src/components/home/Gallery/Settings.vue')['default']
HomeLogo: typeof import('./src/components/home/Logo.vue')['default']
HomeSnips: typeof import('./src/components/home/Snips.vue')['default']
HomeSnipsExample: typeof import('./src/components/home/SnipsExample.vue')['default']
HomeSpecialSponsor: typeof import('./src/components/home/SpecialSponsor.vue')['default']
HomeSponsors: typeof import('./src/components/home/Sponsors.vue')['default']
HomeStore: typeof import('./src/components/home/Store.vue')['default']
HomeSupport: typeof import('./src/components/home/Support.vue')['default']
HomeTooling: typeof import('./src/components/home/Tooling.vue')['default']
HomeVuetifyOne: typeof import('./src/components/home/VuetifyOne.vue')['default']
IconsChevronDown: typeof import('./src/components/icons/ChevronDown.vue')['default']
IntroductionComparison: typeof import('./src/components/introduction/Comparison.vue')['default']
IntroductionConsultingServices: typeof import('./src/components/introduction/ConsultingServices.vue')['default']
Expand Down
50 changes: 40 additions & 10 deletions packages/docs/src/components/app/Markup.vue
Original file line number Diff line number Diff line change
Expand Up @@ -53,18 +53,18 @@
<v-btn
v-if="isHovering"
:key="icon"
:icon="needsPlaygroundLink ? '$vuetify-play' : '$vuetify-bin'"
class="text-disabled me-12 mt-2 app-markup-btn position-absolute right-0 top-0"
density="comfortable"
icon="$vuetify-bin"
size="small"
v-bind="activatorProps"
variant="text"
@click="bin"
@click="openCode"
/>
</v-fade-transition>
</template>

<span>{{ t('open-in-vuetify-bin') }}</span>
<span>{{ t(needsPlaygroundLink ? 'open-in-playground' : 'open-in-vuetify-bin') }}</span>
</v-tooltip>

<div class="pa-4 pe-12">
Expand Down Expand Up @@ -97,7 +97,10 @@

const props = defineProps({
resource: String,
code: null,
code: {
type: [String, Array] as PropType<string | CodeSection[]>,
default: '',
},
inline: Boolean,
language: {
type: String,
Expand Down Expand Up @@ -130,16 +133,35 @@
const root = ref<ComponentPublicInstance>()

const highlighted = shallowRef('')
watchEffect(async () => {
highlighted.value = props.code && props.language && Prism.highlight(await props.code, Prism.languages[props.language], props.language)
})

const className = computed(() => `language-${props.language}`)
const icon = computed(() => clicked.value ? 'mdi-check' : 'mdi-clipboard-text-outline')

async function bin () {
const needsPlaygroundLink = computed(() => Array.isArray(props.code))

const displayedCode = computed(() => {
if (typeof props.code === 'string') {
return props.code
}

return props.code.map((section: CodeSection) => section.content).join('\n\n')
})

watchEffect(async () => {
highlighted.value = displayedCode.value && props.language && Prism.highlight(await displayedCode.value, Prism.languages[props.language], props.language)
})

function openCode () {
if (needsPlaygroundLink.value) {
openPlayground()
} else {
openBin()
}
}

async function openBin () {
const el = root.value?.$el.querySelector('code')
const code = props.code || el?.innerText || ''
const code = displayedCode.value || el?.innerText || ''
const language = props.language || 'markdown'
const title = props.resource

Expand All @@ -148,10 +170,18 @@
window.open(compressed, '_blank')
}

async function openPlayground () {
if (typeof props.code === 'string') return

const url = usePlayground(props.code)

window.open(url, '_blank')
}

async function copy () {
const el = root.value?.$el.querySelector('code')

await navigator.clipboard.writeText(props.code || el?.innerText || '')
await navigator.clipboard.writeText(displayedCode.value || el?.innerText || '')

clicked.value = true

Expand Down
2 changes: 1 addition & 1 deletion packages/docs/src/components/app/bar/Bar.vue
Original file line number Diff line number Diff line change
Expand Up @@ -29,7 +29,7 @@

<AppBarPlaygroundLink v-if="lgAndUp" />

<AppBarOneLink />
<AppBarOneLink class="ml-4" />
</div>

<AppVerticalDivider v-if="mdAndUp" />
Expand Down
1 change: 1 addition & 0 deletions packages/docs/src/components/app/bar/OneLink.vue
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,7 @@
<AppBtn
:to="rpath('/one/')"
color="primary"
rounded="lg"
text="one"
variant="outlined"
@click="sweClick('app-bar', 'one', name)"
Expand Down
4 changes: 2 additions & 2 deletions packages/docs/src/components/doc/IconList.vue
Original file line number Diff line number Diff line change
Expand Up @@ -23,14 +23,14 @@
</template>

<template #item="{ props, item }">
<v-list-item v-bind="props" :prepend-icon="'svg:' + item.path">
<v-list-item v-bind="props" :prepend-icon="'svg:' + item.raw.path">
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

<template #append>
<v-btn
icon="mdi-content-copy"
size="small"
tabindex="-1"
variant="plain"
@click.stop="copy(item.name)"
@click.stop="copy(item.raw.name)"
/>
</template>
</v-list-item>
Expand Down
90 changes: 0 additions & 90 deletions packages/docs/src/components/doc/PremiumThemesGallery.vue

This file was deleted.

6 changes: 3 additions & 3 deletions packages/docs/src/components/doc/Releases.vue
Original file line number Diff line number Diff line change
Expand Up @@ -40,11 +40,11 @@

<template #item="{ item, props: itemProps }">
<v-list-item
v-if="item.name"
v-if="item.raw.name"
v-bind="itemProps"
>
<template v-if="item.reactions" #append>
{{ genEmoji(item.reactions.total_count) }}
<template v-if="item.raw.reactions" #append>
{{ genEmoji(item.raw.reactions.total_count) }}
</template>
</v-list-item>

Expand Down
53 changes: 0 additions & 53 deletions packages/docs/src/components/home/ActionBtns.vue

This file was deleted.

Loading
Loading