diff --git a/.vitepress/theme/components/ArticleMasonry.vue b/.vitepress/theme/components/ArticleMasonry.vue new file mode 100644 index 0000000..1cd0f46 --- /dev/null +++ b/.vitepress/theme/components/ArticleMasonry.vue @@ -0,0 +1,88 @@ + + + + + diff --git a/.vitepress/theme/index.ts b/.vitepress/theme/index.ts index 3bc7daf..9834663 100644 --- a/.vitepress/theme/index.ts +++ b/.vitepress/theme/index.ts @@ -3,6 +3,7 @@ import { createPinia } from "pinia"; import Layout from "./layouts/Default.vue"; import AppBar from "./components/AppBar.vue"; +import ArticleMasonry from "./components/ArticleMasonry.vue"; import Button from "./components/Button.vue"; import Card from "./components/Card.vue"; import Footer from "./components/Footer.vue"; @@ -23,6 +24,7 @@ export default { app.use(pinia); app.component("AppBar", AppBar); + app.component("ArticleMasonry", ArticleMasonry); app.component("Footer", Footer); app.component("Header", Header); app.component("ImageViewer", ImageViewer); diff --git a/.vitepress/theme/styles/components/ArticleMasonry.scss b/.vitepress/theme/styles/components/ArticleMasonry.scss new file mode 100644 index 0000000..134defe --- /dev/null +++ b/.vitepress/theme/styles/components/ArticleMasonry.scss @@ -0,0 +1,24 @@ +#articleMasonry { + display: flex; + align-items: flex-start; + flex-direction: row; + gap: 12px; + + width: 100%; + + .masonry-column { + display: flex; + flex-direction: column; + flex: 1; + gap: 12px; + + min-width: 0px; + + .MaterialCard { + width: 100%; + } + } +} + +@media screen and (max-width: 840px) { +}