diff --git a/bun.lockb b/bun.lockb
index 2a04662..d4d15e6 100755
Binary files a/bun.lockb and b/bun.lockb differ
diff --git a/package.json b/package.json
index a0801cc..84d2924 100644
--- a/package.json
+++ b/package.json
@@ -12,8 +12,7 @@
"@astrojs/tailwind": "^5.0.4",
"@fontsource/averia-serif-libre": "^5.0.18",
"@fontsource/merriweather": "^5.0.8",
- "astro": "^4.0.8",
- "astro-compress": "^2.2.15",
+ "astro": "^4.9.2",
"astro-page-insight": "^0.4.1",
"astro-robots-txt": "^1.0.0",
"astro-seo": "^0.8.3",
diff --git a/public/video/view-transitions-demo.webm b/public/video/view-transitions-demo.webm
new file mode 100644
index 0000000..094d52a
Binary files /dev/null and b/public/video/view-transitions-demo.webm differ
diff --git a/src/components/featured-and-projects/projects.tsx b/src/components/featured-and-projects/projects.tsx
index 53e1eb7..966544e 100644
--- a/src/components/featured-and-projects/projects.tsx
+++ b/src/components/featured-and-projects/projects.tsx
@@ -135,6 +135,113 @@ function goLeft() {
cooldown.value = COOLDOWN_TIME
}
+function GitHubIcon() {
+ return (
+
+ )
+}
+
+function DemoIcon() {
+ return (
+
+ )
+}
+
+function OfficialWebsiteIcon() {
+ return (
+
+ )
+}
+
+function ExternalLinkBadge({
+ type = 'demo',
+ href,
+ lang = 'en'
+}: {
+ type: 'demo' | 'official' | 'repository'
+ href: string
+ lang?: 'en' | 'es'
+}) {
+ let displayedText
+ if (type === 'demo') {
+ displayedText = 'Preview'
+ } else if (type === 'official') {
+ if (lang === 'en') displayedText = 'Website'
+ else displayedText = 'Sitio Web'
+ } else if (lang === 'en') displayedText = 'Repository'
+ else displayedText = 'Repositorio'
+ const Icon =
+ type === 'demo'
+ ? DemoIcon
+ : type === 'official'
+ ? OfficialWebsiteIcon
+ : GitHubIcon
+ return (
+
+
diff --git a/src/pages/blog/building-this-website.mdx b/src/pages/blog/building-this-website.mdx index b803f7c..86c4fc5 100644 --- a/src/pages/blog/building-this-website.mdx +++ b/src/pages/blog/building-this-website.mdx @@ -32,7 +32,7 @@ Want to build your own portfolio or personal website? Here are some things you c - Server Side Rendering with Astro and Deno - Deploy your website for free with Deno Deploy -- Astro View Transitions +- Astro View Transitions - Preact Integration with Astro - How to use signals with Preact - CSS Grid & Flexbox Layouts @@ -124,6 +124,80 @@ target="_blank" rel="noopener noreferrer" class="flex flex-col gap-3">
+### Explore this app with Astro's view transitions + +One of the most interesting features of Astro is the ability to implement +transitions between views in a simple and elegant way. This allows you to create +more attractive and dynamic user experiences, improving navigation and +interaction with the web. + +In this website, I have used Astro's view transitions to create entry and exit +effects when changing pages. This gives a special touch to the navigation and +improves the user experience when exploring the content. + +Here is a demonstration video so you can see how the view transitions work on +this website: + + + +To implement view transitions in your Astro project, you just need to import +them into your main layout, and then include them within the `
` component +of your `layout.astro` file: + +```astro +--- +import { ViewTransitions } from 'astro:transitions' +--- +
+ Blog
+### Explora esta app con las view transitions de Astro + +Una de las características más interesantes de Astro es la posibilidad de +implementar transiciones entre vistas de forma sencilla y elegante. Esto permite +crear experiencias de usuario más atractivas y dinámicas, mejorando la +navegación y la interacción con la web. + +En esta web, he utilizado las view transitions de Astro para crear efectos de +entrada y salida al cambiar de página. Esto le da un toque especial a la +navegación y mejora la experiencia de usuario al explorar el contenido. + +Te dejo un video de demostración para que veas cómo funcionan las view +transitions en esta web: + + + +Para implementar las view transitions en tu proyecto Astro, sólo debes +importarlas dentro de tu layout principal, para luego incluirlas dentro del componente +`
` de tu archivo `layout.astro`: + +```astro +--- +import { ViewTransitions } from 'astro:transitions' +--- +
+ Blog