templates/bundles/SyliusShopBundle/Homepage/index.html.twig line 1

Open in your IDE?
  1. {% extends '@SyliusShop/layout.html.twig' %}
  2. {% block title %}Hephaestos 1.0 - {{ 'release.tagline'|trans }}{% endblock %}
  3. {% set hephaestos_home_capture = asset('build/img/Captures/Acceuil.PNG') ~ '?v=20260516' %}
  4. {% block stylesheets %}
  5. {{ parent() }}
  6. <style>
  7. .main.stackable.grid.container {
  8. width: 100% !important;
  9. max-width: none !important;
  10. margin: 0 !important;
  11. padding: 0 !important;
  12. display: block !important;
  13. }
  14. .main.stackable.grid.container > header,
  15. .main.stackable.grid.container > .ui.message,
  16. .main.stackable.grid.container > .ui.grid {
  17. max-width: 1180px;
  18. margin-left: auto !important;
  19. margin-right: auto !important;
  20. }
  21. .heph-hero {
  22. position: relative;
  23. min-height: 82vh;
  24. display: flex;
  25. align-items: flex-end;
  26. overflow: hidden;
  27. color: #fff;
  28. background:
  29. linear-gradient(90deg, rgba(0, 0, 0, .82), rgba(0, 0, 0, .54) 46%, rgba(0, 0, 0, .12)),
  30. url("{{ hephaestos_home_capture }}") center right / cover no-repeat,
  31. #151515;
  32. }
  33. .heph-hero-bg {
  34. position: absolute;
  35. inset: 0;
  36. background: linear-gradient(180deg, rgba(0, 0, 0, 0) 65%, #f4efe7 100%);
  37. pointer-events: none;
  38. }
  39. .heph-hero-content,
  40. .heph-container {
  41. width: min(1180px, calc(100% - 40px));
  42. margin: 0 auto;
  43. }
  44. .heph-hero-content {
  45. position: relative;
  46. z-index: 1;
  47. padding: 130px 0 96px;
  48. }
  49. .heph-hero-title {
  50. margin: 0;
  51. font-size: clamp(54px, 9vw, 126px);
  52. line-height: .88;
  53. letter-spacing: 0;
  54. text-transform: uppercase;
  55. }
  56. .heph-hero-subtitle {
  57. max-width: 780px;
  58. margin: 28px 0 0;
  59. font-size: clamp(24px, 3vw, 44px);
  60. line-height: 1.08;
  61. font-weight: 900;
  62. }
  63. .heph-hero-desc {
  64. max-width: 700px;
  65. margin: 24px 0 0;
  66. color: rgba(255, 255, 255, .88);
  67. font-size: 20px;
  68. line-height: 1.55;
  69. }
  70. .heph-hero-actions,
  71. .heph-download-cards,
  72. .heph-features-grid,
  73. .heph-support-grid {
  74. display: grid;
  75. gap: 18px;
  76. }
  77. .heph-hero-actions {
  78. display: flex;
  79. flex-wrap: wrap;
  80. margin-top: 34px;
  81. gap: 14px;
  82. }
  83. .heph-btn {
  84. display: inline-flex;
  85. align-items: center;
  86. justify-content: center;
  87. gap: 10px;
  88. min-height: 52px;
  89. padding: 0 22px;
  90. border: 2px solid currentColor;
  91. border-radius: 6px;
  92. font-weight: 900;
  93. text-transform: uppercase;
  94. transition: transform .18s ease, background .18s ease, color .18s ease;
  95. }
  96. .heph-btn:hover {
  97. transform: translateY(-2px);
  98. text-decoration: none;
  99. }
  100. .heph-btn-primary {
  101. border-color: #ff6a1a;
  102. background: #ff6a1a;
  103. color: #170b04;
  104. }
  105. .heph-btn-secondary {
  106. border-color: rgba(255, 255, 255, .76);
  107. background: rgba(255, 255, 255, .08);
  108. color: #fff;
  109. }
  110. .heph-download-card .heph-btn-secondary {
  111. border-color: #245f8f;
  112. background: #245f8f;
  113. color: #fff;
  114. }
  115. .heph-section {
  116. padding: 86px 20px;
  117. background: #f4efe7;
  118. color: #111;
  119. }
  120. .heph-section-dark {
  121. background: #151515;
  122. color: #fff;
  123. }
  124. .heph-section-title {
  125. max-width: 840px;
  126. margin: 0;
  127. font-size: clamp(34px, 5vw, 70px);
  128. line-height: .98;
  129. letter-spacing: 0;
  130. text-transform: uppercase;
  131. }
  132. .heph-section-desc {
  133. max-width: 820px;
  134. margin: 20px 0 42px;
  135. font-size: 19px;
  136. line-height: 1.6;
  137. color: rgba(17, 17, 17, .72);
  138. }
  139. .heph-section-dark .heph-section-desc {
  140. color: rgba(255, 255, 255, .74);
  141. }
  142. .heph-features-grid {
  143. grid-template-columns: repeat(3, minmax(0, 1fr));
  144. }
  145. .heph-feature-card,
  146. .heph-download-card,
  147. .heph-support-card {
  148. border: 1px solid rgba(17, 17, 17, .14);
  149. border-radius: 8px;
  150. background: rgba(255, 255, 255, .58);
  151. padding: 26px;
  152. }
  153. .heph-section-dark .heph-support-card {
  154. border-color: rgba(255, 255, 255, .16);
  155. background: rgba(255, 255, 255, .08);
  156. }
  157. .heph-feature-card h3,
  158. .heph-download-card h3,
  159. .heph-support-card h3 {
  160. margin-top: 18px;
  161. font-size: 24px;
  162. line-height: 1.12;
  163. }
  164. .heph-feature-card p,
  165. .heph-download-card p,
  166. .heph-support-card p {
  167. color: rgba(17, 17, 17, .7);
  168. line-height: 1.55;
  169. }
  170. .heph-section-dark .heph-support-card p {
  171. color: rgba(255, 255, 255, .74);
  172. }
  173. .heph-feature-icon,
  174. .heph-download-os-icon,
  175. .heph-support-icon {
  176. width: 58px;
  177. height: 58px;
  178. display: inline-flex;
  179. align-items: center;
  180. justify-content: center;
  181. border-radius: 50%;
  182. color: #fff;
  183. background: #c9362b;
  184. }
  185. .heph-icon-video,
  186. .heph-icon-midi,
  187. .heph-download-os-icon {
  188. background: #245f8f;
  189. }
  190. .heph-icon-control,
  191. .heph-icon-dmx,
  192. .heph-icon-automation {
  193. background: #1d7a5c;
  194. }
  195. .heph-screenshot {
  196. width: 100%;
  197. display: block;
  198. border-radius: 8px;
  199. box-shadow: 0 28px 80px rgba(0, 0, 0, .38);
  200. background: #222;
  201. }
  202. .heph-download-cards {
  203. grid-template-columns: repeat(2, minmax(0, 1fr));
  204. }
  205. .heph-download-version {
  206. font-weight: 900;
  207. color: #c9362b !important;
  208. }
  209. .heph-beta-band {
  210. display: grid;
  211. grid-template-columns: minmax(0, 1fr) auto;
  212. gap: 26px;
  213. align-items: center;
  214. padding: 32px;
  215. border-radius: 8px;
  216. background: #fffaf0;
  217. border: 1px solid rgba(17, 17, 17, .14);
  218. }
  219. .heph-beta-band strong {
  220. display: inline-flex;
  221. margin-bottom: 10px;
  222. color: #c9362b;
  223. font-weight: 900;
  224. text-transform: uppercase;
  225. }
  226. .heph-beta-band h2 {
  227. margin: 0;
  228. font-size: clamp(30px, 4vw, 56px);
  229. line-height: 1;
  230. text-transform: uppercase;
  231. }
  232. .heph-beta-band p {
  233. max-width: 740px;
  234. margin: 16px 0 0;
  235. color: rgba(17, 17, 17, .72);
  236. font-size: 18px;
  237. line-height: 1.6;
  238. }
  239. .heph-commercial-cta {
  240. display: grid;
  241. grid-template-columns: minmax(0, 1fr) auto;
  242. gap: 28px;
  243. align-items: center;
  244. padding: 36px;
  245. border: 1px solid rgba(255, 255, 255, .16);
  246. border-radius: 8px;
  247. background: rgba(255, 255, 255, .08);
  248. }
  249. .heph-commercial-cta h2 {
  250. margin: 0;
  251. font-size: clamp(32px, 5vw, 66px);
  252. line-height: .98;
  253. text-transform: uppercase;
  254. }
  255. .heph-commercial-cta p {
  256. max-width: 760px;
  257. margin: 18px 0 0;
  258. color: rgba(255, 255, 255, .76);
  259. font-size: 19px;
  260. line-height: 1.6;
  261. }
  262. .heph-btn-block {
  263. width: 100%;
  264. margin-top: 18px;
  265. }
  266. @media (max-width: 900px) {
  267. .heph-features-grid,
  268. .heph-download-cards,
  269. .heph-beta-band,
  270. .heph-commercial-cta {
  271. grid-template-columns: 1fr;
  272. }
  273. .heph-hero {
  274. min-height: 78vh;
  275. background-position: center;
  276. }
  277. }
  278. @media (max-width: 560px) {
  279. .heph-section {
  280. padding: 58px 16px;
  281. }
  282. .heph-btn {
  283. width: 100%;
  284. }
  285. }
  286. </style>
  287. {% endblock %}
  288. {% block content %}
  289. <section class="heph-hero">
  290. <div class="heph-hero-bg"></div>
  291. <div class="heph-hero-content">
  292. <h1 class="heph-hero-title">Hephaestos</h1>
  293. <p class="heph-hero-subtitle">{{ 'release.tagline'|trans }}</p>
  294. <p class="heph-hero-desc">{{ 'release.description'|trans }}</p>
  295. <div class="heph-hero-actions">
  296. <a href="#download" class="heph-btn heph-btn-primary">
  297. <svg width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><path d="M21 15v4a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2v-4"/><polyline points="7 10 12 15 17 10"/><line x1="12" y1="15" x2="12" y2="3"/></svg>
  298. {{ 'Download'|trans }}
  299. </a>
  300. <a href="{{ path('features') }}" class="heph-btn heph-btn-secondary">
  301. <svg width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><polygon points="12 2 15.09 8.26 22 9.27 17 14.14 18.18 21.02 12 17.77 5.82 21.02 7 14.14 2 9.27 8.91 8.26 12 2"/></svg>
  302. {{ 'Features'|trans }}
  303. </a>
  304. </div>
  305. </div>
  306. <div class="heph-hero-scroll">
  307. <span>{{ 'release.scroll'|trans }}</span>
  308. <div class="heph-scroll-indicator"></div>
  309. </div>
  310. </section>
  311. <section class="heph-section">
  312. <div class="heph-container">
  313. <h2 class="heph-section-title">{{ 'release.promise.title'|trans }}</h2>
  314. <p class="heph-section-desc">{{ 'release.promise.desc'|trans }}</p>
  315. <div class="heph-features-grid">
  316. <div class="heph-feature-card">
  317. <div class="heph-feature-icon heph-icon-audio">
  318. <svg width="32" height="32" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"><path d="M20 6 9 17l-5-5"/></svg>
  319. </div>
  320. <h3>{{ 'release.promise.rehearsal.title'|trans }}</h3>
  321. <p>{{ 'release.promise.rehearsal.desc'|trans }}</p>
  322. </div>
  323. <div class="heph-feature-card">
  324. <div class="heph-feature-icon heph-icon-control">
  325. <svg width="32" height="32" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"><polyline points="22 12 18 12 15 21 9 3 6 12 2 12"/></svg>
  326. </div>
  327. <h3>{{ 'release.promise.show.title'|trans }}</h3>
  328. <p>{{ 'release.promise.show.desc'|trans }}</p>
  329. </div>
  330. <div class="heph-feature-card">
  331. <div class="heph-feature-icon heph-icon-video">
  332. <svg width="32" height="32" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"><path d="M4 7h16M4 12h16M4 17h16"/></svg>
  333. </div>
  334. <h3>{{ 'release.promise.rig.title'|trans }}</h3>
  335. <p>{{ 'release.promise.rig.desc'|trans }}</p>
  336. </div>
  337. </div>
  338. </div>
  339. </section>
  340. <section class="heph-section" id="features">
  341. <div class="heph-container">
  342. <h2 class="heph-section-title">{{ 'release.why.title'|trans }}</h2>
  343. <p class="heph-section-desc">{{ 'release.why.subtitle'|trans }}</p>
  344. <div class="heph-features-grid">
  345. <div class="heph-feature-card">
  346. <div class="heph-feature-icon heph-icon-audio">
  347. <svg width="32" height="32" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"><path d="M9 18V5l12-2v13"/><circle cx="6" cy="18" r="3"/><circle cx="18" cy="16" r="3"/></svg>
  348. </div>
  349. <h3>{{ 'release.feature.audio.title'|trans }}</h3>
  350. <p>{{ 'release.feature.audio.desc'|trans }}</p>
  351. </div>
  352. <div class="heph-feature-card">
  353. <div class="heph-feature-icon heph-icon-video">
  354. <svg width="32" height="32" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"><polygon points="23 7 16 12 23 17 23 7"/><rect x="1" y="5" width="15" height="14" rx="2" ry="2"/></svg>
  355. </div>
  356. <h3>{{ 'release.feature.video.title'|trans }}</h3>
  357. <p>{{ 'release.feature.video.desc'|trans }}</p>
  358. </div>
  359. <div class="heph-feature-card">
  360. <div class="heph-feature-icon heph-icon-control">
  361. <svg width="32" height="32" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"><line x1="4" y1="21" x2="4" y2="14"/><line x1="4" y1="10" x2="4" y2="3"/><line x1="12" y1="21" x2="12" y2="12"/><line x1="12" y1="8" x2="12" y2="3"/><line x1="20" y1="21" x2="20" y2="16"/><line x1="20" y1="12" x2="20" y2="3"/><line x1="1" y1="14" x2="7" y2="14"/><line x1="9" y1="8" x2="15" y2="8"/><line x1="17" y1="16" x2="23" y2="16"/></svg>
  362. </div>
  363. <h3>{{ 'release.feature.control.title'|trans }}</h3>
  364. <p>{{ 'release.feature.control.desc'|trans }}</p>
  365. </div>
  366. <div class="heph-feature-card">
  367. <div class="heph-feature-icon heph-icon-dmx">
  368. <svg width="32" height="32" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"><rect x="2" y="3" width="20" height="14" rx="2" ry="2"/><line x1="8" y1="21" x2="16" y2="21"/><line x1="12" y1="17" x2="12" y2="21"/></svg>
  369. </div>
  370. <h3>{{ 'release.feature.dmx.title'|trans }}</h3>
  371. <p>{{ 'release.feature.dmx.desc'|trans }}</p>
  372. </div>
  373. <div class="heph-feature-card">
  374. <div class="heph-feature-icon heph-icon-midi">
  375. <svg width="32" height="32" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"><path d="M4 7h16M4 12h16M4 17h16"/></svg>
  376. </div>
  377. <h3>{{ 'release.feature.midi.title'|trans }}</h3>
  378. <p>{{ 'release.feature.midi.desc'|trans }}</p>
  379. </div>
  380. <div class="heph-feature-card">
  381. <div class="heph-feature-icon heph-icon-automation">
  382. <svg width="32" height="32" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"><polyline points="22 12 18 12 15 21 9 3 6 12 2 12"/></svg>
  383. </div>
  384. <h3>{{ 'release.feature.automation.title'|trans }}</h3>
  385. <p>{{ 'release.feature.automation.desc'|trans }}</p>
  386. </div>
  387. </div>
  388. </div>
  389. </section>
  390. <section class="heph-section heph-section-dark" id="screenshot">
  391. <div class="heph-container">
  392. <h2 class="heph-section-title">{{ 'release.preview.title'|trans }}</h2>
  393. <p class="heph-section-desc">{{ 'release.preview.desc'|trans }}</p>
  394. <div class="heph-screenshot-wrapper">
  395. <img src="{{ hephaestos_home_capture }}" alt="Hephaestos 1.0 Preview" class="heph-screenshot" />
  396. </div>
  397. </div>
  398. </section>
  399. <section class="heph-section" id="beta">
  400. <div class="heph-container">
  401. <div class="heph-beta-band">
  402. <div>
  403. <strong>{{ 'beta.home.badge'|trans }}</strong>
  404. <h2>{{ 'beta.home.title'|trans }}</h2>
  405. <p>{{ 'beta.home.desc'|trans }}</p>
  406. </div>
  407. <a href="{{ path('beta_testers') }}" class="heph-btn heph-btn-primary">{{ 'beta.home.cta'|trans }}</a>
  408. </div>
  409. </div>
  410. </section>
  411. <section class="heph-section" id="download">
  412. <div class="heph-container">
  413. <h2 class="heph-section-title">{{ 'release.download.title'|trans }}</h2>
  414. <p class="heph-section-desc">{{ 'release.download.desc'|trans }}</p>
  415. <div class="heph-download-cards">
  416. <div class="heph-download-card">
  417. <div class="heph-download-os-icon">
  418. <svg width="48" height="48" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"><rect x="4" y="2" width="16" height="20" rx="2" ry="2"/><line x1="9" y1="22" x2="15" y2="22"/></svg>
  419. </div>
  420. <h3>Windows 64-bit</h3>
  421. <p class="heph-download-version">v{{ heph_current_version }}</p>
  422. <a id="download_current_win64" href="{{ '/versions/encours/Hephaestos-' ~ heph_current_filename ~ '-windows.zip' }}"
  423. class="heph-btn heph-btn-primary heph-btn-block">
  424. <svg width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><path d="M21 15v4a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2v-4"/><polyline points="7 10 12 15 17 10"/><line x1="12" y1="15" x2="12" y2="3"/></svg>
  425. {{ 'release.download.btn'|trans }}
  426. </a>
  427. </div>
  428. <div class="heph-download-card">
  429. <div class="heph-download-os-icon">
  430. <svg width="48" height="48" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"><path d="M12 20.94c1.5 0 2.75 1.06 4 1.06 3 0 6-8 6-12.22A4.91 4.91 0 0 0 17 5c-2.22 0-4 1.44-5 2-1-.56-2.78-2-5-2a4.9 4.9 0 0 0-5 4.78C2 14 5 22 8 22c1.25 0 2.5-1.06 4-1.06Z"/><path d="M10 2c1 .5 2 2 2 5"/></svg>
  431. </div>
  432. <h3>macOS</h3>
  433. <p class="heph-download-version">v{{ heph_current_version }}</p>
  434. <a id="download_current_OSX"
  435. href="{{ '/versions/encours/Hephaestos-' ~ heph_current_filename ~ '-macos.zip' }}"
  436. class="heph-btn heph-btn-secondary heph-btn-block">
  437. <svg width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><path d="M21 15v4a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2v-4"/><polyline points="7 10 12 15 17 10"/><line x1="12" y1="15" x2="12" y2="3"/></svg>
  438. {{ 'release.download.btn'|trans }}
  439. </a>
  440. </div>
  441. <div class="heph-download-card">
  442. <div class="heph-download-os-icon">
  443. <svg width="48" height="48" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"><rect x="3" y="4" width="18" height="14" rx="2" ry="2"/><line x1="8" y1="20" x2="16" y2="20"/><line x1="12" y1="18" x2="12" y2="20"/><path d="m8 10 2 2-2 2"/><path d="M12 14h4"/></svg>
  444. </div>
  445. <h3>Ubuntu</h3>
  446. <p class="heph-download-version">v{{ heph_current_version }}</p>
  447. <a id="download_current_ubuntu"
  448. href="{{ '/versions/encours/Hephaestos-' ~ heph_current_filename ~ '-ubuntu.zip' }}"
  449. class="heph-btn heph-btn-primary heph-btn-block">
  450. <svg width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><path d="M21 15v4a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2v-4"/><polyline points="7 10 12 15 17 10"/><line x1="12" y1="15" x2="12" y2="3"/></svg>
  451. {{ 'release.download.btn'|trans }}
  452. </a>
  453. </div>
  454. </div>
  455. </div>
  456. </section>
  457. <section class="heph-section heph-section-dark" id="support">
  458. <div class="heph-container">
  459. <div class="heph-commercial-cta">
  460. <div>
  461. <h2>{{ 'release.cta.title'|trans }}</h2>
  462. <p>{{ 'release.cta.desc'|trans }}</p>
  463. </div>
  464. <div class="heph-hero-actions">
  465. <a href="#download" class="heph-btn heph-btn-primary">{{ 'release.cta.download'|trans }}</a>
  466. <a href="{{ path('forum') }}" class="heph-btn heph-btn-secondary">{{ 'release.cta.contact'|trans }}</a>
  467. </div>
  468. </div>
  469. </div>
  470. </section>
  471. {% endblock %}