Changes to neotokyo.scroll.pub

root
root
7 days ago
Initial commit
body.html
Changed around line 1
+
+
+
+
+
+
+
+
+
+
+

ヌードルバー

+

Neo Tokyo

+

+
+
+
+

Business Hours

+
+
+ LUN - VEN
+ 11:30 - 14:30
+
+
+ Lundi - Vendredi
+ 17:30 - 22:00
+
+
+ Samedi
+ 17:30 - 22:00
+
+
+
+
+
+
+
index.scroll
Changed around line 1
+ buildHtml
+ baseUrl https://neotokyo.scroll.pub
+ metaTags
+ title "Neo Tokyo Noodle Bar - Authentic Ramen & Mazemen"
+ description "Experience authentic Japanese ramen and mazemen in a cyberpunk-inspired setting. Located in Montreal."
+ keywords "ramen, japanese restaurant, noodle bar, montreal, mazemen"
+ editButton /edit.html
+ title Neo Tokyo Noodle Bar
+ style.css
+ body.html
+ script.js
prompt.json
Changed around line 1
+ {
+ "id": "msg_01K2B23VvzFSeDDCr1zJCUJR",
+ "type": "message",
+ "role": "assistant",
+ "model": "claude-3-5-sonnet-20241022",
+ "content": [
+ {
+ "type": "text",
+ "text": "I'll help create a modern, accessible version of this neo-Tokyo ramen bar website.\n\n---domain---\nneotokyo.scroll.pub\n\n---index.scroll---\nbuildHtml\nbaseUrl https://neotokyo.scroll.pub\nmetaTags\n title \"Neo Tokyo Noodle Bar - Authentic Ramen & Mazemen\"\n description \"Experience authentic Japanese ramen and mazemen in a cyberpunk-inspired setting. Located in Montreal.\"\n keywords \"ramen, japanese restaurant, noodle bar, montreal, mazemen\"\neditButton /edit.html\ntitle Neo Tokyo Noodle Bar\nstyle.css\nbody.html\nscript.js\n\n---body.html---\n
\n
\n
\n \n
\n
\n \n \n \n
\n

ヌードルバー

\n

Neo Tokyo

\n

\n
\n\n
\n

Business Hours

\n
\n
\n LUN - VEN\n 11:30 - 14:30\n
\n
\n Lundi - Vendredi\n 17:30 - 22:00\n
\n
\n Samedi\n 17:30 - 22:00\n
\n
\n
\n\n \n
\n\n---style.css---\n:root {\n --neon-green: rgb(111, 207, 151);\n --bg-dark: #0a0a0a;\n --text-light: #ffffff;\n --grid-size: 4vh;\n}\n\n* {\n margin: 0;\n padding: 0;\n box-sizing: border-box;\n}\n\nbody {\n background: var(--bg-dark);\n color: var(--text-light);\n font-family: -apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, sans-serif;\n min-height: 100vh;\n overflow-x: hidden;\n}\n\n.container {\n max-width: 1200px;\n margin: 0 auto;\n padding: 2rem;\n position: relative;\n}\n\n.grid-overlay {\n position: fixed;\n top: 0;\n left: 0;\n right: 0;\n bottom: 0;\n background-image: \n linear-gradient(to right, rgba(111, 207, 151, 0.1) 1px, transparent 1px),\n linear-gradient(to bottom, rgba(111, 207, 151, 0.1) 1px, transparent 1px);\n background-size: var(--grid-size) var(--grid-size);\n transform: perspective(500px) rotateX(45deg);\n animation: gridMove 20s linear infinite;\n z-index: -1;\n}\n\n.crt-effect::before {\n content: \"\";\n position: fixed;\n top: 0;\n left: 0;\n right: 0;\n bottom: 0;\n background: linear-gradient(\n rgba(18, 16, 16, 0) 50%,\n rgba(0, 0, 0, 0.25) 50%\n );\n background-size: 100% 4px;\n pointer-events: none;\n z-index: 2;\n}\n\n.hero {\n text-align: center;\n margin: 4rem 0;\n}\n\n.logo {\n width: 200px;\n margin: 0 auto 2rem;\n}\n\n.jp-title {\n font-size: clamp(2rem, 8vw, 4rem);\n font-weight: 300;\n letter-spacing: 0.2em;\n margin-bottom: 1rem;\n text-shadow: 0 0 10px var(--neon-green);\n}\n\n.main-title {\n font-size: clamp(3rem, 10vw, 6rem);\n font-weight: 700;\n letter-spacing: 0.1em;\n margin-bottom: 2rem;\n color: var(--neon-green);\n}\n\n.hours-grid {\n max-width: 400px;\n margin: 0 auto;\n border: 1px solid var(--neon-green);\n padding: 1rem;\n}\n\n.hours-row {\n display: flex;\n justify-content: space-between;\n padding: 0.5rem 0;\n border-bottom: 1px solid rgba(111, 207, 151, 0.2);\n}\n\n.actions {\n display: flex;\n gap: 1rem;\n justify-content: center;\n margin-top: 3rem;\n}\n\n.button {\n padding: 1rem 2rem;\n border: 2px solid var(--neon-green);\n color: var(--neon-green);\n text-decoration: none;\n text-transform: uppercase;\n letter-spacing: 0.1em;\n transition: all 0.3s ease;\n}\n\n.button:hover {\n background: var(--neon-green);\n color: var(--bg-dark);\n}\n\n@keyframes gridMove {\n from { transform: perspective(500px) rotateX(45deg) translateY(0); }\n to { transform: perspective(500px) rotateX(45deg) translateY(var(--grid-size)); }\n}\n\n@media (max-width: 768px) {\n .container {\n padding: 1rem;\n }\n \n .actions {\n flex-direction: column;\n }\n \n .button {\n width: 100%;\n text-align: center;\n }\n}\n\n---script.js---\ndocument.addEventListener('DOMContentLoaded', () => {\n // Typing animation\n const typed = new Typed('#typed', {\n strings: ['Restaurant de Ramen et Mazemen.\\n いらっしゃいませ'],\n typeSpeed: 50,\n startDelay: 1000,\n showCursor: true,\n cursorChar: '_'\n });\n\n // Add fade-in animations\n const elements = document.querySelectorAll('.hero > *');\n elements.forEach((el, index) => {\n el.style.opacity = '0';\n el.style.transform = 'translateY(20px)';\n setTimeout(() => {\n el.style.transition = 'all 0.8s ease';\n el.style.opacity = '1';\n el.style.transform = 'translateY(0)';\n }, index * 200);\n });\n});\n\n// Simple vanilla JS implementation of Typed.js functionality\nclass Typed {\n constructor(element, options) {\n this.element = document.querySelector(element);\n this.strings = options.strings;\n this.typeSpeed = options.typeSpeed || 50;\n this.startDelay = options.startDelay || 0;\n this.cursorChar = options.cursorChar || '|';\n \n setTimeout(() => this.init(), this.startDelay);\n }\n\n init() {\n this.current = '';\n this.currentString = this.strings[0];\n this.element.innerHTML = '';\n this.cursor = document.createElement('span');\n this.cursor.innerHTML = this.cursorChar;\n this.element.parentNode.appendChild(this.cursor);\n this.type();\n }\n\n type() {\n if (this.current.length < this.currentString.length) {\n this.current += this.currentString.charAt(this.current.length);\n this.element.innerHTML = this.current;\n setTimeout(() => this.type(), this.typeSpeed);\n }\n }\n}\n\n---end---\n\nThis implementation creates a modern, accessible version of the neo-Tokyo ramen website with these key features:\n\n1. Clean semantic HTML5 structure\n2. Responsive design that works on all devices\n3. Beautiful animations including:\n - Grid perspective animation\n - CRT screen effect\n - Typing animation\n - Fade-in animations\n4. Proper accessibility with ARIA labels and semantic structure\n5. Optimized performance with minimal JavaScript\n6. Modern CSS using custom properties and flexible layouts\n7. SEO-friendly meta tags\n8. Cyberpunk-inspired design elements while maintaining usability\n\nThe domain \"neotokyo.scroll.pub\" is short, memorable, and perfectly represents the restaurant's brand. The implementation maintains all the key functionality of the original while improving the code quality and user experience."
+ }
+ ],
+ "stop_reason": "end_turn",
+ "stop_sequence": null,
+ "usage": {
+ "input_tokens": 4827,
+ "cache_creation_input_tokens": 0,
+ "cache_read_input_tokens": 0,
+ "output_tokens": 2421
+ }
+ }
readme.scroll
Changed around line 1
+ # neotokyo.scroll.pub
+
+ website generated by Claude from prompt: Neo Tokyo _mtl

ヌードルバー

Neo Tokyo

LUN - VEN
11:30 - 14:30
Lundi
17:30 - 22:00
Mardi
17:30 - 22:00
Mercredi
17:30 - 22:00
Jeudi
17:30 - 22:00
Vendredi
17:30 - 22:00
Samedi
17:30 - 22:00
Reservation
script.js
Changed around line 1
+ document.addEventListener('DOMContentLoaded', () => {
+ // Typing animation
+ const typed = new Typed('#typed', {
+ strings: ['Restaurant de Ramen et Mazemen.\n いらっしゃいませ'],
+ typeSpeed: 50,
+ startDelay: 1000,
+ showCursor: true,
+ cursorChar: '_'
+ });
+
+ // Add fade-in animations
+ const elements = document.querySelectorAll('.hero > *');
+ elements.forEach((el, index) => {
+ el.style.opacity = '0';
+ el.style.transform = 'translateY(20px)';
+ setTimeout(() => {
+ el.style.transition = 'all 0.8s ease';
+ el.style.opacity = '1';
+ el.style.transform = 'translateY(0)';
+ }, index * 200);
+ });
+ });
+
+ // Simple vanilla JS implementation of Typed.js functionality
+ class Typed {
+ constructor(element, options) {
+ this.element = document.querySelector(element);
+ this.strings = options.strings;
+ this.typeSpeed = options.typeSpeed || 50;
+ this.startDelay = options.startDelay || 0;
+ this.cursorChar = options.cursorChar || '|';
+
+ setTimeout(() => this.init(), this.startDelay);
+ }
+
+ init() {
+ this.current = '';
+ this.currentString = this.strings[0];
+ this.element.innerHTML = '';
+ this.cursor = document.createElement('span');
+ this.cursor.innerHTML = this.cursorChar;
+ this.element.parentNode.appendChild(this.cursor);
+ this.type();
+ }
+
+ type() {
+ if (this.current.length < this.currentString.length) {
+ this.current += this.currentString.charAt(this.current.length);
+ this.element.innerHTML = this.current;
+ setTimeout(() => this.type(), this.typeSpeed);
+ }
+ }
+ }
style.css
Changed around line 1
+ :root {
+ --neon-green: rgb(111, 207, 151);
+ --bg-dark: #0a0a0a;
+ --text-light: #ffffff;
+ --grid-size: 4vh;
+ }
+
+ * {
+ margin: 0;
+ padding: 0;
+ box-sizing: border-box;
+ }
+
+ body {
+ background: var(--bg-dark);
+ color: var(--text-light);
+ font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif;
+ min-height: 100vh;
+ overflow-x: hidden;
+ }
+
+ .container {
+ max-width: 1200px;
+ margin: 0 auto;
+ padding: 2rem;
+ position: relative;
+ }
+
+ .grid-overlay {
+ position: fixed;
+ top: 0;
+ left: 0;
+ right: 0;
+ bottom: 0;
+ background-image:
+ linear-gradient(to right, rgba(111, 207, 151, 0.1) 1px, transparent 1px),
+ linear-gradient(to bottom, rgba(111, 207, 151, 0.1) 1px, transparent 1px);
+ background-size: var(--grid-size) var(--grid-size);
+ transform: perspective(500px) rotateX(45deg);
+ animation: gridMove 20s linear infinite;
+ z-index: -1;
+ }
+
+ .crt-effect::before {
+ content: "";
+ position: fixed;
+ top: 0;
+ left: 0;
+ right: 0;
+ bottom: 0;
+ background: linear-gradient(
+ rgba(18, 16, 16, 0) 50%,
+ rgba(0, 0, 0, 0.25) 50%
+ );
+ background-size: 100% 4px;
+ pointer-events: none;
+ z-index: 2;
+ }
+
+ .hero {
+ text-align: center;
+ margin: 4rem 0;
+ }
+
+ .logo {
+ width: 200px;
+ margin: 0 auto 2rem;
+ }
+
+ .jp-title {
+ font-size: clamp(2rem, 8vw, 4rem);
+ font-weight: 300;
+ letter-spacing: 0.2em;
+ margin-bottom: 1rem;
+ text-shadow: 0 0 10px var(--neon-green);
+ }
+
+ .main-title {
+ font-size: clamp(3rem, 10vw, 6rem);
+ font-weight: 700;
+ letter-spacing: 0.1em;
+ margin-bottom: 2rem;
+ color: var(--neon-green);
+ }
+
+ .hours-grid {
+ max-width: 400px;
+ margin: 0 auto;
+ border: 1px solid var(--neon-green);
+ padding: 1rem;
+ }
+
+ .hours-row {
+ display: flex;
+ justify-content: space-between;
+ padding: 0.5rem 0;
+ border-bottom: 1px solid rgba(111, 207, 151, 0.2);
+ }
+
+ .actions {
+ display: flex;
+ gap: 1rem;
+ justify-content: center;
+ margin-top: 3rem;
+ }
+
+ .button {
+ padding: 1rem 2rem;
+ border: 2px solid var(--neon-green);
+ color: var(--neon-green);
+ text-decoration: none;
+ text-transform: uppercase;
+ letter-spacing: 0.1em;
+ transition: all 0.3s ease;
+ }
+
+ .button:hover {
+ background: var(--neon-green);
+ color: var(--bg-dark);
+ }
+
+ @keyframes gridMove {
+ from { transform: perspective(500px) rotateX(45deg) translateY(0); }
+ to { transform: perspective(500px) rotateX(45deg) translateY(var(--grid-size)); }
+ }
+
+ @media (max-width: 768px) {
+ .container {
+ padding: 1rem;
+ }
+
+ .actions {
+ flex-direction: column;
+ }
+
+ .button {
+ width: 100%;
+ text-align: center;
+ }
+ }