S SmartDocs
系列: vibe coding javascript 128 行 · 更新於 2026-04-26

projects.js

vibe_coding/src/data/projects.js

/**
 * Project data
 * --------------------------------------------------------------------------
 * Each project carries trilingual content (es / en / zh).
 * Replace `cover` and `gallery` items with real images placed under
 * `public/images/projects/<slug>/...` when they are ready.
 * Until then, `cover: null` shows a brand-coloured placeholder.
 */

const projects = [
  {
    slug: 'casa-luz-suave',
    cover: null,
    type: 'residential',
    featured: true,
    meta: {
      type: { es: 'Residencial', en: 'Residential', zh: '住宅' },
      area: { es: '78 m²', en: '78 m²', zh: '78 m²' },
      year: { es: '2025', en: '2025', zh: '2025' },
      location: { es: 'Madrid · académico', en: 'Madrid · academic', zh: '马德里 · 课程作品' }
    },
    title: {
      es: 'Casa de luz suave',
      en: 'House of soft light',
      zh: '柔光之家'
    },
    summary: {
      es: 'Una vivienda donde la luz se vuelve materia.',
      en: 'A home where light becomes matter.',
      zh: '一座让光线成为材料的房子。'
    },
    question: {
      es: 'Reconectar a una pareja joven con el ritmo del día.',
      en: 'Reconnecting a young couple with the rhythm of the day.',
      zh: '让一对年轻夫妇重新与一日的节奏相连。'
    },
    description: {
      es: 'El piso original era oscuro y compartimentado. La intervención consistió en abrir el eje norte–sur, eliminar paredes innecesarias y dejar que la luz natural se convierta en el principal material del proyecto. Cada estancia se piensa según la hora del día en que se habita.',
      en: 'The original flat was dark and compartmentalised. The intervention opens the north–south axis, removes unnecessary walls and lets natural light become the main material of the project. Each room is conceived around the hour of the day it is inhabited.',
      zh: '原有公寓昏暗、被隔成多个小间。改造打通南北轴线,拆除多余隔墙,让自然光成为项目最主要的「材料」。每一个空间,都按照它在一天中被使用的那个时刻来设计。'
    },
    materials: {
      es: 'Suelo de roble blanqueado, paredes con cal natural en tono crema, textiles en lino crudo y mobiliario de madera maciza. La luz se filtra mediante cortinas de algodón fino que no la cortan, sólo la suavizan.',
      en: 'Bleached oak flooring, lime-washed walls in cream, raw linen textiles and solid wood furniture. Light is filtered through thin cotton curtains that do not cut it, only soften it.',
      zh: '漂白橡木地板,奶油色的天然石灰墙面,原色亚麻布艺,实木家具。薄棉窗帘不切割光线,只是把它变得柔和。'
    },
    gallery: [
      { kind: 'tall' },
      { kind: 'wide' },
      { kind: 'wide' },
      { kind: 'wide' }
    ]
  },
  {
    slug: 'cafe-de-las-cosas-honestas',
    cover: null,
    type: 'commercial',
    featured: true,
    meta: {
      type: { es: 'Comercial', en: 'Commercial', zh: '商业' },
      area: { es: '64 m²', en: '64 m²', zh: '64 m²' },
      year: { es: '2025', en: '2025', zh: '2025' },
      location: { es: 'Lavapiés, Madrid · académico', en: 'Lavapiés, Madrid · academic', zh: '马德里 Lavapiés · 课程作品' }
    },
    title: {
      es: 'Café de las cosas honestas',
      en: 'Café of honest things',
      zh: '诚实小馆'
    },
    summary: {
      es: 'Un café de barrio donde los materiales no fingen.',
      en: 'A neighbourhood café where materials do not pretend.',
      zh: '一家街区咖啡馆,材料不假装。'
    },
    question: {
      es: 'Devolver a un local anónimo la memoria de su barrio.',
      en: 'Giving back to an anonymous space the memory of its neighbourhood.',
      zh: '让一个面无表情的店铺,重新拥有它所属街区的记忆。'
    },
    description: {
      es: 'En Lavapiés conviven capas de tiempo. El proyecto descubre el ladrillo y la madera originales, añade una barra de microcemento y un mostrador de cerámica artesanal. Nada se imita: cada material es lo que dice ser.',
      en: 'Lavapiés is a neighbourhood of overlapping eras. The project uncovers the original brick and wood, adds a microcement bar and a handmade ceramic counter. Nothing imitates anything else: every material is what it says it is.',
      zh: 'Lavapiés 是一个不同时代叠加的街区。项目重新揭开原有的红砖和木结构,加入一段微水泥吧台与一段手工陶土台面。这里没有任何「模仿」——每一种材料就是它本身。'
    },
    materials: {
      es: 'Ladrillo visto recuperado, madera de pino sin barnizar, microcemento en tono terracota, cerámica esmaltada hecha a mano. Iluminación cálida, baja, en lámparas de tela.',
      en: 'Recovered exposed brick, unvarnished pine, terracotta-toned microcement, handmade glazed ceramic. Warm, low fabric pendant lighting.',
      zh: '修复后的清水砖,不上漆的松木,赤陶色微水泥,手工釉面陶土。布艺吊灯散发着温暖、低位的灯光。'
    },
    gallery: [
      { kind: 'wide' },
      { kind: 'wide' },
      { kind: 'tall' },
      { kind: 'wide' }
    ]
  },
  {
    slug: 'project-coming-soon',
    cover: null,
    type: 'academic',
    comingSoon: true,
    featured: false,
    title: {
      es: 'Próximo proyecto',
      en: 'Upcoming project',
      zh: '下一个项目'
    },
    summary: {
      es: 'Próximamente — actualmente en desarrollo.',
      en: 'Coming soon — currently in development.',
      zh: '正在制作中,敬请期待。'
    }
  }
];

export const getProjectBySlug = (slug) => projects.find((p) => p.slug === slug);

export const getNeighbours = (slug) => {
  const visible = projects.filter((p) => !p.comingSoon);
  const idx = visible.findIndex((p) => p.slug === slug);
  if (idx === -1) return { prev: null, next: null };
  return {
    prev: visible[(idx - 1 + visible.length) % visible.length],
    next: visible[(idx + 1) % visible.length]
  };
};

export default projects;

相關文章