Add PowerPoint generation improvements for Alimentari Piccolo
- Fix html2pptx Windows file path handling (file:/// URLs) - Fix Italian flag diagonal (remove CSS rotation, use positioned rectangles) - Add Chinese character background watermark (意) - Add geometric pattern attempt (Art Deco style) - Fix validation errors (text positioning, margins) - Add backup slides directory - Add build scripts and image resources 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <noreply@anthropic.com>
@ -120,9 +120,21 @@ function validateTextBoxPosition(slideData, bodyDimensions) {
|
||||
// Helper: Add background to slide
|
||||
async function addBackground(slideData, targetSlide, tmpDir) {
|
||||
if (slideData.background.type === 'image' && slideData.background.path) {
|
||||
let imagePath = slideData.background.path.startsWith('file://')
|
||||
? slideData.background.path.replace('file://', '')
|
||||
: slideData.background.path;
|
||||
let imagePath = slideData.background.path;
|
||||
if (imagePath.startsWith('file://')) {
|
||||
// Use URL to properly handle file:// paths on all platforms
|
||||
try {
|
||||
const url = new URL(imagePath);
|
||||
imagePath = url.pathname;
|
||||
// On Windows, pathname starts with / before drive letter, remove it
|
||||
if (process.platform === 'win32' && /^\/[A-Z]:/.test(imagePath)) {
|
||||
imagePath = imagePath.slice(1);
|
||||
}
|
||||
} catch (e) {
|
||||
// Fallback to simple replace
|
||||
imagePath = imagePath.replace('file://', '');
|
||||
}
|
||||
}
|
||||
targetSlide.background = { path: imagePath };
|
||||
} else if (slideData.background.type === 'color' && slideData.background.value) {
|
||||
targetSlide.background = { color: slideData.background.value };
|
||||
@ -133,7 +145,21 @@ async function addBackground(slideData, targetSlide, tmpDir) {
|
||||
function addElements(slideData, targetSlide, pres) {
|
||||
for (const el of slideData.elements) {
|
||||
if (el.type === 'image') {
|
||||
let imagePath = el.src.startsWith('file://') ? el.src.replace('file://', '') : el.src;
|
||||
let imagePath = el.src;
|
||||
if (imagePath.startsWith('file://')) {
|
||||
// Use URL to properly handle file:// paths on all platforms
|
||||
try {
|
||||
const url = new URL(imagePath);
|
||||
imagePath = url.pathname;
|
||||
// On Windows, pathname starts with / before drive letter, remove it
|
||||
if (process.platform === 'win32' && /^\/[A-Z]:/.test(imagePath)) {
|
||||
imagePath = imagePath.slice(1);
|
||||
}
|
||||
} catch (e) {
|
||||
// Fallback to simple replace
|
||||
imagePath = imagePath.replace('file://', '');
|
||||
}
|
||||
}
|
||||
targetSlide.addImage({
|
||||
path: imagePath,
|
||||
x: el.position.x,
|
||||
|
||||
@ -1,6 +1,7 @@
|
||||
{
|
||||
"dependencies": {
|
||||
"playwright": "^1.56.1",
|
||||
"pptxgenjs": "^4.0.1"
|
||||
"pptxgenjs": "^4.0.1",
|
||||
"sharp": "^0.34.5"
|
||||
}
|
||||
}
|
||||
|
||||
@ -56,11 +56,11 @@
|
||||
|
||||
.title-container {
|
||||
position: absolute;
|
||||
top: 95pt;
|
||||
top: 80pt;
|
||||
left: 50%;
|
||||
transform: translateX(-50%);
|
||||
background: #F8F8F8;
|
||||
padding: 28pt 45pt;
|
||||
padding: 24pt 45pt;
|
||||
border-radius: 15pt;
|
||||
box-shadow: 0 8pt 25pt rgba(0, 0, 0, 0.15);
|
||||
border: 3pt solid #D4AF37;
|
||||
@ -363,7 +363,7 @@
|
||||
|
||||
.final-box {
|
||||
position: absolute;
|
||||
bottom: 62pt;
|
||||
bottom: 90pt;
|
||||
left: 30pt;
|
||||
right: 30pt;
|
||||
height: 46pt;
|
||||
|
||||
32
work_chinese/PPT04122025/_build/generate.js
Normal file
@ -0,0 +1,32 @@
|
||||
const pptxgen = require('pptxgenjs');
|
||||
const html2pptx = require('../../../.claude/skills/pptx/scripts/html2pptx.js');
|
||||
const path = require('path');
|
||||
|
||||
async function generatePresentation() {
|
||||
console.log('🍝 Génération Alimentari Piccolo PowerPoint...\n');
|
||||
|
||||
const pptx = new pptxgen();
|
||||
pptx.layout = 'LAYOUT_16x9';
|
||||
pptx.author = 'Alexis - Xiezuo Course';
|
||||
pptx.title = 'Alimentari Piccolo - 意大利餐吧评价';
|
||||
pptx.subject = '餐厅评价作业';
|
||||
|
||||
const htmlFile = path.join(__dirname, 'alimentari_piccolo.html');
|
||||
|
||||
try {
|
||||
await html2pptx(htmlFile, pptx, { tmpDir: __dirname });
|
||||
|
||||
const outputPath = path.join(__dirname, '..', 'Alimentari_Piccolo.pptx');
|
||||
await pptx.writeFile({ fileName: outputPath });
|
||||
|
||||
console.log(`✅ Présentation créée avec succès: ${outputPath}`);
|
||||
} catch (error) {
|
||||
console.error('❌ Erreur lors de la génération:', error.message);
|
||||
if (error.stack) {
|
||||
console.error(error.stack);
|
||||
}
|
||||
process.exit(1);
|
||||
}
|
||||
}
|
||||
|
||||
generatePresentation();
|
||||
@ -17,7 +17,7 @@ async function createPresentation() {
|
||||
await html2pptx(
|
||||
path.join(__dirname, 'slides/slide1_title.html'),
|
||||
pptx,
|
||||
{ tmpDir: '/tmp' }
|
||||
{ tmpDir: path.join(__dirname, '_build') }
|
||||
);
|
||||
|
||||
// Slide 2: Location
|
||||
@ -25,7 +25,7 @@ async function createPresentation() {
|
||||
await html2pptx(
|
||||
path.join(__dirname, 'slides/slide2_location.html'),
|
||||
pptx,
|
||||
{ tmpDir: '/tmp' }
|
||||
{ tmpDir: path.join(__dirname, '_build') }
|
||||
);
|
||||
|
||||
// Slide 3: Piadina
|
||||
@ -33,7 +33,7 @@ async function createPresentation() {
|
||||
await html2pptx(
|
||||
path.join(__dirname, 'slides/slide3_piadina.html'),
|
||||
pptx,
|
||||
{ tmpDir: '/tmp' }
|
||||
{ tmpDir: path.join(__dirname, '_build') }
|
||||
);
|
||||
|
||||
// Slide 4: Croquettes
|
||||
@ -41,7 +41,7 @@ async function createPresentation() {
|
||||
await html2pptx(
|
||||
path.join(__dirname, 'slides/slide4_croquettes.html'),
|
||||
pptx,
|
||||
{ tmpDir: '/tmp' }
|
||||
{ tmpDir: path.join(__dirname, '_build') }
|
||||
);
|
||||
|
||||
// Slide 5: Ambiance
|
||||
@ -49,7 +49,7 @@ async function createPresentation() {
|
||||
await html2pptx(
|
||||
path.join(__dirname, 'slides/slide5_ambiance.html'),
|
||||
pptx,
|
||||
{ tmpDir: '/tmp' }
|
||||
{ tmpDir: path.join(__dirname, '_build') }
|
||||
);
|
||||
|
||||
// Slide 6: Menu
|
||||
@ -57,7 +57,7 @@ async function createPresentation() {
|
||||
await html2pptx(
|
||||
path.join(__dirname, 'slides/slide6_menu.html'),
|
||||
pptx,
|
||||
{ tmpDir: '/tmp' }
|
||||
{ tmpDir: path.join(__dirname, '_build') }
|
||||
);
|
||||
|
||||
// Slide 7: Credits
|
||||
@ -65,11 +65,12 @@ async function createPresentation() {
|
||||
await html2pptx(
|
||||
path.join(__dirname, 'slides/slide7_credits.html'),
|
||||
pptx,
|
||||
{ tmpDir: '/tmp' }
|
||||
{ tmpDir: path.join(__dirname, '_build') }
|
||||
);
|
||||
|
||||
// Save
|
||||
const outputFile = 'Alimentari_Piccolo_v3.pptx';
|
||||
const timestamp = new Date().toISOString().replace(/[:.]/g, '-').slice(0, -5);
|
||||
const outputFile = `Alimentari_Piccolo_${timestamp}.pptx`;
|
||||
await pptx.writeFile({ fileName: path.join(__dirname, outputFile) });
|
||||
|
||||
console.log('\n✅ 演示文稿创建成功!');
|
||||
|
||||
58
work_chinese/PPT04122025/fix_flags.js
Normal file
@ -0,0 +1,58 @@
|
||||
const fs = require('fs');
|
||||
const path = require('path');
|
||||
|
||||
const slidesDir = path.join(__dirname, 'slides');
|
||||
const files = fs.readdirSync(slidesDir).filter(f => f.endsWith('.html') && f !== 'slide1_title.html');
|
||||
|
||||
const flagCSSFix = `/* Italian flag diagonal - simple rectangles positioned diagonally */
|
||||
.flag-green {
|
||||
position: absolute;
|
||||
top: 15pt;
|
||||
left: 15pt;
|
||||
width: 45pt;
|
||||
height: 12pt;
|
||||
background: #2D5016;
|
||||
opacity: 0.85;
|
||||
}
|
||||
|
||||
.flag-white {
|
||||
position: absolute;
|
||||
top: 27pt;
|
||||
left: 27pt;
|
||||
width: 45pt;
|
||||
height: 12pt;
|
||||
background: #F5F5DC;
|
||||
opacity: 0.85;
|
||||
}
|
||||
|
||||
.flag-red {
|
||||
position: absolute;
|
||||
top: 39pt;
|
||||
left: 39pt;
|
||||
width: 45pt;
|
||||
height: 12pt;
|
||||
background: #8B1A1A;
|
||||
opacity: 0.85;
|
||||
}`;
|
||||
|
||||
files.forEach(file => {
|
||||
const filePath = path.join(slidesDir, file);
|
||||
let content = fs.readFileSync(filePath, 'utf8');
|
||||
|
||||
// Replace the old flag CSS with the new one
|
||||
content = content.replace(
|
||||
/\/\* Italian flag diagonal \*\/[\s\S]*?\.flag-red \{[\s\S]*?\}/,
|
||||
flagCSSFix
|
||||
);
|
||||
|
||||
// Remove the flag-diagonal wrapper div in HTML
|
||||
content = content.replace(
|
||||
/<div class="flag-diagonal">\s*<div class="flag-green"><\/div>\s*<div class="flag-white"><\/div>\s*<div class="flag-red"><\/div>\s*<\/div>/,
|
||||
'<div class="flag-green"></div>\n <div class="flag-white"></div>\n <div class="flag-red"></div>'
|
||||
);
|
||||
|
||||
fs.writeFileSync(filePath, content, 'utf8');
|
||||
console.log(`✓ Fixed ${file}`);
|
||||
});
|
||||
|
||||
console.log(`\n✅ Fixed ${files.length} slides`);
|
||||
BIN
work_chinese/PPT04122025/pptx_build/CarteCNNice.jpg
Normal file
|
After Width: | Height: | Size: 285 KiB |
BIN
work_chinese/PPT04122025/pptx_build/CarteENTravers.jpg
Normal file
|
After Width: | Height: | Size: 291 KiB |
BIN
work_chinese/PPT04122025/pptx_build/InsideResto.jpg
Normal file
|
After Width: | Height: | Size: 418 KiB |
BIN
work_chinese/PPT04122025/pptx_build/LayoutTable.jpg
Normal file
|
After Width: | Height: | Size: 346 KiB |
BIN
work_chinese/PPT04122025/pptx_build/OutsideResto.jpg
Normal file
|
After Width: | Height: | Size: 366 KiB |
BIN
work_chinese/PPT04122025/pptx_build/croquettes.jpg
Normal file
|
After Width: | Height: | Size: 113 KiB |
BIN
work_chinese/PPT04122025/pptx_build/piadina.jpg
Normal file
|
After Width: | Height: | Size: 338 KiB |
@ -19,49 +19,35 @@ body {
|
||||
position: relative;
|
||||
}
|
||||
|
||||
/* Italian flag diagonal */
|
||||
.flag-diagonal {
|
||||
position: absolute;
|
||||
top: -20pt;
|
||||
left: -20pt;
|
||||
width: 120pt;
|
||||
height: 120pt;
|
||||
overflow: hidden;
|
||||
opacity: 0.8;
|
||||
z-index: 10;
|
||||
}
|
||||
|
||||
/* Italian flag diagonal - simple rectangles positioned diagonally */
|
||||
.flag-green {
|
||||
position: absolute;
|
||||
top: 0;
|
||||
left: 0;
|
||||
width: 33.33%;
|
||||
height: 100%;
|
||||
top: 15pt;
|
||||
left: 15pt;
|
||||
width: 45pt;
|
||||
height: 12pt;
|
||||
background: #2D5016;
|
||||
transform: rotate(-45deg);
|
||||
transform-origin: top left;
|
||||
opacity: 0.85;
|
||||
}
|
||||
|
||||
.flag-white {
|
||||
position: absolute;
|
||||
top: 0;
|
||||
left: 33.33%;
|
||||
width: 33.33%;
|
||||
height: 100%;
|
||||
top: 27pt;
|
||||
left: 27pt;
|
||||
width: 45pt;
|
||||
height: 12pt;
|
||||
background: #F5F5DC;
|
||||
transform: rotate(-45deg);
|
||||
transform-origin: top left;
|
||||
opacity: 0.85;
|
||||
}
|
||||
|
||||
.flag-red {
|
||||
position: absolute;
|
||||
top: 0;
|
||||
right: 0;
|
||||
width: 33.33%;
|
||||
height: 100%;
|
||||
top: 39pt;
|
||||
left: 39pt;
|
||||
width: 45pt;
|
||||
height: 12pt;
|
||||
background: #8B1A1A;
|
||||
transform: rotate(-45deg);
|
||||
transform-origin: top right;
|
||||
opacity: 0.85;
|
||||
}
|
||||
|
||||
/* Signature gold bar */
|
||||
@ -102,36 +88,101 @@ body {
|
||||
letter-spacing: 1pt;
|
||||
}
|
||||
|
||||
/* Geometric pattern */
|
||||
.pattern {
|
||||
position: absolute;
|
||||
bottom: 40pt;
|
||||
left: 80pt;
|
||||
width: 60pt;
|
||||
height: 60pt;
|
||||
border: 2pt solid #D4AF37;
|
||||
transform: rotate(45deg);
|
||||
opacity: 0.3;
|
||||
}
|
||||
|
||||
.pattern-inner {
|
||||
/* Chinese character background - 意 (Italy) */
|
||||
.chinese-bg {
|
||||
position: absolute;
|
||||
top: 50%;
|
||||
left: 50%;
|
||||
transform: translate(-50%, -50%);
|
||||
width: 30pt;
|
||||
height: 30pt;
|
||||
border: 2pt solid #D4AF37;
|
||||
z-index: 1;
|
||||
pointer-events: none;
|
||||
}
|
||||
|
||||
.chinese-bg p {
|
||||
font-size: 280pt;
|
||||
font-weight: 900;
|
||||
color: #2A2A2A;
|
||||
opacity: 0.08;
|
||||
font-family: "SimHei", "STHeiti", "Microsoft YaHei", sans-serif;
|
||||
line-height: 1;
|
||||
margin: 0;
|
||||
padding: 0;
|
||||
}
|
||||
|
||||
/* Geometric pattern - Art Deco Italian style */
|
||||
.pattern-grid {
|
||||
position: absolute;
|
||||
top: 0;
|
||||
right: 0;
|
||||
width: 200pt;
|
||||
height: 405pt;
|
||||
opacity: 0.04;
|
||||
z-index: 2;
|
||||
overflow: hidden;
|
||||
}
|
||||
|
||||
.pattern-line {
|
||||
position: absolute;
|
||||
background: #D4AF37;
|
||||
height: 1pt;
|
||||
}
|
||||
|
||||
.pattern-line-1 { top: 30pt; left: 0; width: 200pt; }
|
||||
.pattern-line-2 { top: 60pt; left: 0; width: 200pt; }
|
||||
.pattern-line-3 { top: 90pt; left: 0; width: 200pt; }
|
||||
.pattern-line-4 { top: 120pt; left: 0; width: 200pt; }
|
||||
.pattern-line-5 { top: 150pt; left: 0; width: 200pt; }
|
||||
.pattern-line-6 { top: 180pt; left: 0; width: 200pt; }
|
||||
.pattern-line-7 { top: 210pt; left: 0; width: 200pt; }
|
||||
.pattern-line-8 { top: 240pt; left: 0; width: 200pt; }
|
||||
.pattern-line-9 { top: 270pt; left: 0; width: 200pt; }
|
||||
.pattern-line-10 { top: 300pt; left: 0; width: 200pt; }
|
||||
.pattern-line-11 { top: 330pt; left: 0; width: 200pt; }
|
||||
.pattern-line-12 { top: 360pt; left: 0; width: 200pt; }
|
||||
|
||||
.pattern-box {
|
||||
position: absolute;
|
||||
border: 1pt solid #D4AF37;
|
||||
}
|
||||
|
||||
.pattern-box-1 { top: 40pt; right: 20pt; width: 30pt; height: 30pt; }
|
||||
.pattern-box-2 { top: 100pt; right: 60pt; width: 25pt; height: 25pt; }
|
||||
.pattern-box-3 { top: 160pt; right: 30pt; width: 35pt; height: 35pt; }
|
||||
.pattern-box-4 { top: 220pt; right: 70pt; width: 28pt; height: 28pt; }
|
||||
.pattern-box-5 { top: 280pt; right: 45pt; width: 32pt; height: 32pt; }
|
||||
.pattern-box-6 { top: 340pt; right: 25pt; width: 30pt; height: 30pt; }
|
||||
</style>
|
||||
</head>
|
||||
<body>
|
||||
<div class="slide-content">
|
||||
<div class="flag-diagonal">
|
||||
<!-- Background elements (lowest z-index) -->
|
||||
<div class="chinese-bg"><p>意</p></div>
|
||||
|
||||
<div class="pattern-grid">
|
||||
<div class="pattern-line pattern-line-1"></div>
|
||||
<div class="pattern-line pattern-line-2"></div>
|
||||
<div class="pattern-line pattern-line-3"></div>
|
||||
<div class="pattern-line pattern-line-4"></div>
|
||||
<div class="pattern-line pattern-line-5"></div>
|
||||
<div class="pattern-line pattern-line-6"></div>
|
||||
<div class="pattern-line pattern-line-7"></div>
|
||||
<div class="pattern-line pattern-line-8"></div>
|
||||
<div class="pattern-line pattern-line-9"></div>
|
||||
<div class="pattern-line pattern-line-10"></div>
|
||||
<div class="pattern-line pattern-line-11"></div>
|
||||
<div class="pattern-line pattern-line-12"></div>
|
||||
<div class="pattern-box pattern-box-1"></div>
|
||||
<div class="pattern-box pattern-box-2"></div>
|
||||
<div class="pattern-box pattern-box-3"></div>
|
||||
<div class="pattern-box pattern-box-4"></div>
|
||||
<div class="pattern-box pattern-box-5"></div>
|
||||
<div class="pattern-box pattern-box-6"></div>
|
||||
</div>
|
||||
|
||||
<!-- Foreground elements -->
|
||||
<div class="flag-green"></div>
|
||||
<div class="flag-white"></div>
|
||||
<div class="flag-red"></div>
|
||||
</div>
|
||||
|
||||
<div class="gold-bar"></div>
|
||||
|
||||
@ -139,10 +190,6 @@ body {
|
||||
<h1>ALIMENTARI<br>PICCOLO</h1>
|
||||
<p>意大利餐吧 · 番禺路</p>
|
||||
</div>
|
||||
|
||||
<div class="pattern">
|
||||
<div class="pattern-inner"></div>
|
||||
</div>
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
||||
|
||||
@ -19,43 +19,35 @@ body {
|
||||
position: relative;
|
||||
}
|
||||
|
||||
/* Italian flag diagonal */
|
||||
.flag-diagonal {
|
||||
position: absolute;
|
||||
top: -20pt;
|
||||
left: -20pt;
|
||||
width: 120pt;
|
||||
height: 120pt;
|
||||
transform: rotate(-45deg);
|
||||
overflow: hidden;
|
||||
z-index: 10;
|
||||
}
|
||||
|
||||
/* Italian flag diagonal - simple rectangles positioned diagonally */
|
||||
.flag-green {
|
||||
position: absolute;
|
||||
top: 0;
|
||||
left: 0;
|
||||
width: 33.33%;
|
||||
height: 100%;
|
||||
background: #8B9B83;
|
||||
top: 15pt;
|
||||
left: 15pt;
|
||||
width: 45pt;
|
||||
height: 12pt;
|
||||
background: #2D5016;
|
||||
opacity: 0.85;
|
||||
}
|
||||
|
||||
.flag-white {
|
||||
position: absolute;
|
||||
top: 0;
|
||||
left: 33.33%;
|
||||
width: 33.33%;
|
||||
height: 100%;
|
||||
background: #FFFFFF;
|
||||
top: 27pt;
|
||||
left: 27pt;
|
||||
width: 45pt;
|
||||
height: 12pt;
|
||||
background: #F5F5DC;
|
||||
opacity: 0.85;
|
||||
}
|
||||
|
||||
.flag-red {
|
||||
position: absolute;
|
||||
top: 0;
|
||||
right: 0;
|
||||
width: 33.33%;
|
||||
height: 100%;
|
||||
background: #B8867D;
|
||||
top: 39pt;
|
||||
left: 39pt;
|
||||
width: 45pt;
|
||||
height: 12pt;
|
||||
background: #8B1A1A;
|
||||
opacity: 0.85;
|
||||
}
|
||||
|
||||
/* Photo grid */
|
||||
@ -118,21 +110,19 @@ body {
|
||||
</head>
|
||||
<body>
|
||||
<div class="slide-content">
|
||||
<div class="flag-diagonal">
|
||||
<div class="flag-green"></div>
|
||||
<div class="flag-white"></div>
|
||||
<div class="flag-red"></div>
|
||||
</div>
|
||||
|
||||
<div class="photo-grid">
|
||||
<div class="photo-large">
|
||||
<img src="file:///tmp/pptx_build/OutsideResto.jpg" alt="Outside">
|
||||
<img src="file:///C:/Users/alexi/Documents/projects/couple-repo/work_chinese/PPT04122025/pptx_build/OutsideResto.jpg" alt="Outside">
|
||||
</div>
|
||||
<div class="photo-small">
|
||||
<img src="file:///tmp/pptx_build/InsideResto.jpg" alt="Inside">
|
||||
<img src="file:///C:/Users/alexi/Documents/projects/couple-repo/work_chinese/PPT04122025/pptx_build/InsideResto.jpg" alt="Inside">
|
||||
</div>
|
||||
<div class="photo-small">
|
||||
<img src="file:///tmp/pptx_build/LayoutTable.jpg" alt="Table">
|
||||
<img src="file:///C:/Users/alexi/Documents/projects/couple-repo/work_chinese/PPT04122025/pptx_build/LayoutTable.jpg" alt="Table">
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
||||
@ -19,49 +19,35 @@ body {
|
||||
position: relative;
|
||||
}
|
||||
|
||||
/* Italian flag diagonal */
|
||||
.flag-diagonal {
|
||||
position: absolute;
|
||||
top: -20pt;
|
||||
left: -20pt;
|
||||
width: 120pt;
|
||||
height: 120pt;
|
||||
overflow: hidden;
|
||||
opacity: 0.8;
|
||||
z-index: 10;
|
||||
}
|
||||
|
||||
/* Italian flag diagonal - simple rectangles positioned diagonally */
|
||||
.flag-green {
|
||||
position: absolute;
|
||||
top: 0;
|
||||
left: 0;
|
||||
width: 33.33%;
|
||||
height: 100%;
|
||||
top: 15pt;
|
||||
left: 15pt;
|
||||
width: 45pt;
|
||||
height: 12pt;
|
||||
background: #2D5016;
|
||||
transform: rotate(-45deg);
|
||||
transform-origin: top left;
|
||||
opacity: 0.85;
|
||||
}
|
||||
|
||||
.flag-white {
|
||||
position: absolute;
|
||||
top: 0;
|
||||
left: 33.33%;
|
||||
width: 33.33%;
|
||||
height: 100%;
|
||||
top: 27pt;
|
||||
left: 27pt;
|
||||
width: 45pt;
|
||||
height: 12pt;
|
||||
background: #F5F5DC;
|
||||
transform: rotate(-45deg);
|
||||
transform-origin: top left;
|
||||
opacity: 0.85;
|
||||
}
|
||||
|
||||
.flag-red {
|
||||
position: absolute;
|
||||
top: 0;
|
||||
right: 0;
|
||||
width: 33.33%;
|
||||
height: 100%;
|
||||
top: 39pt;
|
||||
left: 39pt;
|
||||
width: 45pt;
|
||||
height: 12pt;
|
||||
background: #8B1A1A;
|
||||
transform: rotate(-45deg);
|
||||
transform-origin: top right;
|
||||
opacity: 0.85;
|
||||
}
|
||||
|
||||
/* Signature gold bar */
|
||||
@ -131,16 +117,14 @@ body {
|
||||
</head>
|
||||
<body>
|
||||
<div class="slide-content">
|
||||
<div class="flag-diagonal">
|
||||
<div class="flag-green"></div>
|
||||
<div class="flag-white"></div>
|
||||
<div class="flag-red"></div>
|
||||
</div>
|
||||
|
||||
<div class="gold-bar"></div>
|
||||
|
||||
<div class="hero-photo">
|
||||
<img src="file:///tmp/pptx_build/OutsideResto.jpg" alt="Outside">
|
||||
<img src="file:///C:/Users/alexi/Documents/projects/couple-repo/work_chinese/PPT04122025/pptx_build/OutsideResto.jpg" alt="Outside">
|
||||
</div>
|
||||
|
||||
<div class="info-overlay">
|
||||
|
||||
@ -19,49 +19,35 @@ body {
|
||||
position: relative;
|
||||
}
|
||||
|
||||
/* Italian flag diagonal */
|
||||
.flag-diagonal {
|
||||
position: absolute;
|
||||
top: -20pt;
|
||||
left: -20pt;
|
||||
width: 120pt;
|
||||
height: 120pt;
|
||||
overflow: hidden;
|
||||
opacity: 0.8;
|
||||
z-index: 10;
|
||||
}
|
||||
|
||||
/* Italian flag diagonal - simple rectangles positioned diagonally */
|
||||
.flag-green {
|
||||
position: absolute;
|
||||
top: 0;
|
||||
left: 0;
|
||||
width: 33.33%;
|
||||
height: 100%;
|
||||
top: 15pt;
|
||||
left: 15pt;
|
||||
width: 45pt;
|
||||
height: 12pt;
|
||||
background: #2D5016;
|
||||
transform: rotate(-45deg);
|
||||
transform-origin: top left;
|
||||
opacity: 0.85;
|
||||
}
|
||||
|
||||
.flag-white {
|
||||
position: absolute;
|
||||
top: 0;
|
||||
left: 33.33%;
|
||||
width: 33.33%;
|
||||
height: 100%;
|
||||
top: 27pt;
|
||||
left: 27pt;
|
||||
width: 45pt;
|
||||
height: 12pt;
|
||||
background: #F5F5DC;
|
||||
transform: rotate(-45deg);
|
||||
transform-origin: top left;
|
||||
opacity: 0.85;
|
||||
}
|
||||
|
||||
.flag-red {
|
||||
position: absolute;
|
||||
top: 0;
|
||||
right: 0;
|
||||
width: 33.33%;
|
||||
height: 100%;
|
||||
top: 39pt;
|
||||
left: 39pt;
|
||||
width: 45pt;
|
||||
height: 12pt;
|
||||
background: #8B1A1A;
|
||||
transform: rotate(-45deg);
|
||||
transform-origin: top right;
|
||||
opacity: 0.85;
|
||||
}
|
||||
|
||||
/* Signature gold bar */
|
||||
@ -147,16 +133,14 @@ body {
|
||||
</head>
|
||||
<body>
|
||||
<div class="slide-content">
|
||||
<div class="flag-diagonal">
|
||||
<div class="flag-green"></div>
|
||||
<div class="flag-white"></div>
|
||||
<div class="flag-red"></div>
|
||||
</div>
|
||||
|
||||
<div class="gold-bar"></div>
|
||||
|
||||
<div class="dish-photo">
|
||||
<img src="file:///tmp/pptx_build/piadina.jpg" alt="Piadina">
|
||||
<img src="file:///C:/Users/alexi/Documents/projects/couple-repo/work_chinese/PPT04122025/pptx_build/piadina.jpg" alt="Piadina">
|
||||
</div>
|
||||
|
||||
<div class="dish-info">
|
||||
|
||||
@ -19,49 +19,35 @@ body {
|
||||
position: relative;
|
||||
}
|
||||
|
||||
/* Italian flag diagonal */
|
||||
.flag-diagonal {
|
||||
position: absolute;
|
||||
top: -20pt;
|
||||
left: -20pt;
|
||||
width: 120pt;
|
||||
height: 120pt;
|
||||
overflow: hidden;
|
||||
opacity: 0.8;
|
||||
z-index: 10;
|
||||
}
|
||||
|
||||
/* Italian flag diagonal - simple rectangles positioned diagonally */
|
||||
.flag-green {
|
||||
position: absolute;
|
||||
top: 0;
|
||||
left: 0;
|
||||
width: 33.33%;
|
||||
height: 100%;
|
||||
top: 15pt;
|
||||
left: 15pt;
|
||||
width: 45pt;
|
||||
height: 12pt;
|
||||
background: #2D5016;
|
||||
transform: rotate(-45deg);
|
||||
transform-origin: top left;
|
||||
opacity: 0.85;
|
||||
}
|
||||
|
||||
.flag-white {
|
||||
position: absolute;
|
||||
top: 0;
|
||||
left: 33.33%;
|
||||
width: 33.33%;
|
||||
height: 100%;
|
||||
top: 27pt;
|
||||
left: 27pt;
|
||||
width: 45pt;
|
||||
height: 12pt;
|
||||
background: #F5F5DC;
|
||||
transform: rotate(-45deg);
|
||||
transform-origin: top left;
|
||||
opacity: 0.85;
|
||||
}
|
||||
|
||||
.flag-red {
|
||||
position: absolute;
|
||||
top: 0;
|
||||
right: 0;
|
||||
width: 33.33%;
|
||||
height: 100%;
|
||||
top: 39pt;
|
||||
left: 39pt;
|
||||
width: 45pt;
|
||||
height: 12pt;
|
||||
background: #8B1A1A;
|
||||
transform: rotate(-45deg);
|
||||
transform-origin: top right;
|
||||
opacity: 0.85;
|
||||
}
|
||||
|
||||
/* Signature gold bar */
|
||||
@ -147,16 +133,14 @@ body {
|
||||
</head>
|
||||
<body>
|
||||
<div class="slide-content">
|
||||
<div class="flag-diagonal">
|
||||
<div class="flag-green"></div>
|
||||
<div class="flag-white"></div>
|
||||
<div class="flag-red"></div>
|
||||
</div>
|
||||
|
||||
<div class="gold-bar"></div>
|
||||
|
||||
<div class="dish-photo">
|
||||
<img src="file:///tmp/pptx_build/croquettes.jpg" alt="Croquettes">
|
||||
<img src="file:///C:/Users/alexi/Documents/projects/couple-repo/work_chinese/PPT04122025/pptx_build/croquettes.jpg" alt="Croquettes">
|
||||
</div>
|
||||
|
||||
<div class="dish-info">
|
||||
|
||||
@ -19,49 +19,35 @@ body {
|
||||
position: relative;
|
||||
}
|
||||
|
||||
/* Italian flag diagonal */
|
||||
.flag-diagonal {
|
||||
position: absolute;
|
||||
top: -20pt;
|
||||
left: -20pt;
|
||||
width: 120pt;
|
||||
height: 120pt;
|
||||
overflow: hidden;
|
||||
opacity: 0.8;
|
||||
z-index: 10;
|
||||
}
|
||||
|
||||
/* Italian flag diagonal - simple rectangles positioned diagonally */
|
||||
.flag-green {
|
||||
position: absolute;
|
||||
top: 0;
|
||||
left: 0;
|
||||
width: 33.33%;
|
||||
height: 100%;
|
||||
top: 15pt;
|
||||
left: 15pt;
|
||||
width: 45pt;
|
||||
height: 12pt;
|
||||
background: #2D5016;
|
||||
transform: rotate(-45deg);
|
||||
transform-origin: top left;
|
||||
opacity: 0.85;
|
||||
}
|
||||
|
||||
.flag-white {
|
||||
position: absolute;
|
||||
top: 0;
|
||||
left: 33.33%;
|
||||
width: 33.33%;
|
||||
height: 100%;
|
||||
top: 27pt;
|
||||
left: 27pt;
|
||||
width: 45pt;
|
||||
height: 12pt;
|
||||
background: #F5F5DC;
|
||||
transform: rotate(-45deg);
|
||||
transform-origin: top left;
|
||||
opacity: 0.85;
|
||||
}
|
||||
|
||||
.flag-red {
|
||||
position: absolute;
|
||||
top: 0;
|
||||
right: 0;
|
||||
width: 33.33%;
|
||||
height: 100%;
|
||||
top: 39pt;
|
||||
left: 39pt;
|
||||
width: 45pt;
|
||||
height: 12pt;
|
||||
background: #8B1A1A;
|
||||
transform: rotate(-45deg);
|
||||
transform-origin: top right;
|
||||
opacity: 0.85;
|
||||
}
|
||||
|
||||
/* Signature gold bar */
|
||||
@ -151,20 +137,18 @@ body {
|
||||
</head>
|
||||
<body>
|
||||
<div class="slide-content">
|
||||
<div class="flag-diagonal">
|
||||
<div class="flag-green"></div>
|
||||
<div class="flag-white"></div>
|
||||
<div class="flag-red"></div>
|
||||
</div>
|
||||
|
||||
<div class="gold-bar"></div>
|
||||
|
||||
<div class="photo-left">
|
||||
<img src="file:///tmp/pptx_build/InsideResto.jpg" alt="Inside">
|
||||
<img src="file:///C:/Users/alexi/Documents/projects/couple-repo/work_chinese/PPT04122025/pptx_build/InsideResto.jpg" alt="Inside">
|
||||
</div>
|
||||
|
||||
<div class="photo-right">
|
||||
<img src="file:///tmp/pptx_build/LayoutTable.jpg" alt="Table">
|
||||
<img src="file:///C:/Users/alexi/Documents/projects/couple-repo/work_chinese/PPT04122025/pptx_build/LayoutTable.jpg" alt="Table">
|
||||
</div>
|
||||
|
||||
<div class="eval-panel">
|
||||
|
||||
@ -19,43 +19,35 @@ body {
|
||||
position: relative;
|
||||
}
|
||||
|
||||
/* Italian flag diagonal */
|
||||
.flag-diagonal {
|
||||
position: absolute;
|
||||
top: -20pt;
|
||||
left: -20pt;
|
||||
width: 120pt;
|
||||
height: 120pt;
|
||||
transform: rotate(-45deg);
|
||||
overflow: hidden;
|
||||
z-index: 10;
|
||||
}
|
||||
|
||||
/* Italian flag diagonal - simple rectangles positioned diagonally */
|
||||
.flag-green {
|
||||
position: absolute;
|
||||
top: 0;
|
||||
left: 0;
|
||||
width: 33.33%;
|
||||
height: 100%;
|
||||
background: #8B9B83;
|
||||
top: 15pt;
|
||||
left: 15pt;
|
||||
width: 45pt;
|
||||
height: 12pt;
|
||||
background: #2D5016;
|
||||
opacity: 0.85;
|
||||
}
|
||||
|
||||
.flag-white {
|
||||
position: absolute;
|
||||
top: 0;
|
||||
left: 33.33%;
|
||||
width: 33.33%;
|
||||
height: 100%;
|
||||
background: #FFFFFF;
|
||||
top: 27pt;
|
||||
left: 27pt;
|
||||
width: 45pt;
|
||||
height: 12pt;
|
||||
background: #F5F5DC;
|
||||
opacity: 0.85;
|
||||
}
|
||||
|
||||
.flag-red {
|
||||
position: absolute;
|
||||
top: 0;
|
||||
right: 0;
|
||||
width: 33.33%;
|
||||
height: 100%;
|
||||
background: #B8867D;
|
||||
top: 39pt;
|
||||
left: 39pt;
|
||||
width: 45pt;
|
||||
height: 12pt;
|
||||
background: #8B1A1A;
|
||||
opacity: 0.85;
|
||||
}
|
||||
|
||||
/* Menu photos */
|
||||
@ -129,18 +121,16 @@ body {
|
||||
</head>
|
||||
<body>
|
||||
<div class="slide-content">
|
||||
<div class="flag-diagonal">
|
||||
<div class="flag-green"></div>
|
||||
<div class="flag-white"></div>
|
||||
<div class="flag-red"></div>
|
||||
</div>
|
||||
|
||||
<div class="menu-photos">
|
||||
<div class="menu-card">
|
||||
<img src="file:///tmp/pptx_build/CarteCNNice.jpg" alt="Menu">
|
||||
<img src="file:///C:/Users/alexi/Documents/projects/couple-repo/work_chinese/PPT04122025/pptx_build/CarteCNNice.jpg" alt="Menu">
|
||||
</div>
|
||||
<div class="menu-card">
|
||||
<img src="file:///tmp/pptx_build/CarteENTravers.jpg" alt="Menu">
|
||||
<img src="file:///C:/Users/alexi/Documents/projects/couple-repo/work_chinese/PPT04122025/pptx_build/CarteENTravers.jpg" alt="Menu">
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
||||
@ -19,49 +19,35 @@ body {
|
||||
position: relative;
|
||||
}
|
||||
|
||||
/* Italian flag diagonal */
|
||||
.flag-diagonal {
|
||||
position: absolute;
|
||||
top: -20pt;
|
||||
left: -20pt;
|
||||
width: 120pt;
|
||||
height: 120pt;
|
||||
overflow: hidden;
|
||||
opacity: 0.8;
|
||||
z-index: 10;
|
||||
}
|
||||
|
||||
/* Italian flag diagonal - simple rectangles positioned diagonally */
|
||||
.flag-green {
|
||||
position: absolute;
|
||||
top: 0;
|
||||
left: 0;
|
||||
width: 33.33%;
|
||||
height: 100%;
|
||||
top: 15pt;
|
||||
left: 15pt;
|
||||
width: 45pt;
|
||||
height: 12pt;
|
||||
background: #2D5016;
|
||||
transform: rotate(-45deg);
|
||||
transform-origin: top left;
|
||||
opacity: 0.85;
|
||||
}
|
||||
|
||||
.flag-white {
|
||||
position: absolute;
|
||||
top: 0;
|
||||
left: 33.33%;
|
||||
width: 33.33%;
|
||||
height: 100%;
|
||||
top: 27pt;
|
||||
left: 27pt;
|
||||
width: 45pt;
|
||||
height: 12pt;
|
||||
background: #F5F5DC;
|
||||
transform: rotate(-45deg);
|
||||
transform-origin: top left;
|
||||
opacity: 0.85;
|
||||
}
|
||||
|
||||
.flag-red {
|
||||
position: absolute;
|
||||
top: 0;
|
||||
right: 0;
|
||||
width: 33.33%;
|
||||
height: 100%;
|
||||
top: 39pt;
|
||||
left: 39pt;
|
||||
width: 45pt;
|
||||
height: 12pt;
|
||||
background: #8B1A1A;
|
||||
transform: rotate(-45deg);
|
||||
transform-origin: top right;
|
||||
opacity: 0.85;
|
||||
}
|
||||
|
||||
/* Signature gold bar */
|
||||
@ -128,11 +114,9 @@ body {
|
||||
</head>
|
||||
<body>
|
||||
<div class="slide-content">
|
||||
<div class="flag-diagonal">
|
||||
<div class="flag-green"></div>
|
||||
<div class="flag-white"></div>
|
||||
<div class="flag-red"></div>
|
||||
</div>
|
||||
|
||||
<div class="gold-bar"></div>
|
||||
|
||||
@ -141,7 +125,7 @@ body {
|
||||
</div>
|
||||
|
||||
<div class="menu-center">
|
||||
<img src="file:///tmp/pptx_build/CarteCNNice.jpg" alt="Menu CN">
|
||||
<img src="file:///C:/Users/alexi/Documents/projects/couple-repo/work_chinese/PPT04122025/pptx_build/CarteCNNice.jpg" alt="Menu CN">
|
||||
</div>
|
||||
|
||||
<div class="pattern"></div>
|
||||
|
||||
@ -19,49 +19,35 @@ body {
|
||||
position: relative;
|
||||
}
|
||||
|
||||
/* Italian flag diagonal */
|
||||
.flag-diagonal {
|
||||
position: absolute;
|
||||
top: -20pt;
|
||||
left: -20pt;
|
||||
width: 120pt;
|
||||
height: 120pt;
|
||||
overflow: hidden;
|
||||
opacity: 0.8;
|
||||
z-index: 10;
|
||||
}
|
||||
|
||||
/* Italian flag diagonal - simple rectangles positioned diagonally */
|
||||
.flag-green {
|
||||
position: absolute;
|
||||
top: 0;
|
||||
left: 0;
|
||||
width: 33.33%;
|
||||
height: 100%;
|
||||
top: 15pt;
|
||||
left: 15pt;
|
||||
width: 45pt;
|
||||
height: 12pt;
|
||||
background: #2D5016;
|
||||
transform: rotate(-45deg);
|
||||
transform-origin: top left;
|
||||
opacity: 0.85;
|
||||
}
|
||||
|
||||
.flag-white {
|
||||
position: absolute;
|
||||
top: 0;
|
||||
left: 33.33%;
|
||||
width: 33.33%;
|
||||
height: 100%;
|
||||
top: 27pt;
|
||||
left: 27pt;
|
||||
width: 45pt;
|
||||
height: 12pt;
|
||||
background: #F5F5DC;
|
||||
transform: rotate(-45deg);
|
||||
transform-origin: top left;
|
||||
opacity: 0.85;
|
||||
}
|
||||
|
||||
.flag-red {
|
||||
position: absolute;
|
||||
top: 0;
|
||||
right: 0;
|
||||
width: 33.33%;
|
||||
height: 100%;
|
||||
top: 39pt;
|
||||
left: 39pt;
|
||||
width: 45pt;
|
||||
height: 12pt;
|
||||
background: #8B1A1A;
|
||||
transform: rotate(-45deg);
|
||||
transform-origin: top right;
|
||||
opacity: 0.85;
|
||||
}
|
||||
|
||||
/* Signature gold bar */
|
||||
@ -127,11 +113,9 @@ body {
|
||||
</head>
|
||||
<body>
|
||||
<div class="slide-content">
|
||||
<div class="flag-diagonal">
|
||||
<div class="flag-green"></div>
|
||||
<div class="flag-white"></div>
|
||||
<div class="flag-red"></div>
|
||||
</div>
|
||||
|
||||
<div class="gold-bar"></div>
|
||||
|
||||
|
||||
130
work_chinese/PPT04122025/slides_backup/slide1_title.html
Normal file
@ -0,0 +1,130 @@
|
||||
<!DOCTYPE html>
|
||||
<html>
|
||||
<head>
|
||||
<style>
|
||||
html { background: #ffffff; }
|
||||
body {
|
||||
width: 720pt;
|
||||
height: 405pt;
|
||||
margin: 0;
|
||||
padding: 0;
|
||||
background: #1A1A1A;
|
||||
font-family: Georgia, serif;
|
||||
display: flex;
|
||||
}
|
||||
|
||||
.slide-content {
|
||||
width: 100%;
|
||||
height: 100%;
|
||||
position: relative;
|
||||
}
|
||||
|
||||
/* Italian flag diagonal - simple rectangles positioned diagonally */
|
||||
.flag-green {
|
||||
position: absolute;
|
||||
top: 15pt;
|
||||
left: 15pt;
|
||||
width: 45pt;
|
||||
height: 12pt;
|
||||
background: #2D5016;
|
||||
opacity: 0.85;
|
||||
}
|
||||
|
||||
.flag-white {
|
||||
position: absolute;
|
||||
top: 27pt;
|
||||
left: 27pt;
|
||||
width: 45pt;
|
||||
height: 12pt;
|
||||
background: #F5F5DC;
|
||||
opacity: 0.85;
|
||||
}
|
||||
|
||||
.flag-red {
|
||||
position: absolute;
|
||||
top: 39pt;
|
||||
left: 39pt;
|
||||
width: 45pt;
|
||||
height: 12pt;
|
||||
background: #8B1A1A;
|
||||
opacity: 0.85;
|
||||
}
|
||||
|
||||
/* Signature gold bar */
|
||||
.gold-bar {
|
||||
position: absolute;
|
||||
right: 60pt;
|
||||
top: 60pt;
|
||||
bottom: 60pt;
|
||||
width: 3pt;
|
||||
background: #D4AF37;
|
||||
}
|
||||
|
||||
/* Main title */
|
||||
.title-container {
|
||||
position: absolute;
|
||||
top: 50%;
|
||||
left: 80pt;
|
||||
right: 100pt;
|
||||
transform: translateY(-50%);
|
||||
}
|
||||
|
||||
.title-container h1 {
|
||||
font-size: 56pt;
|
||||
font-weight: 700;
|
||||
color: #D4AF37;
|
||||
margin: 0 0 20pt 0;
|
||||
padding: 0;
|
||||
letter-spacing: 3pt;
|
||||
line-height: 1.1;
|
||||
}
|
||||
|
||||
.title-container p {
|
||||
font-size: 20pt;
|
||||
color: #C9C9C9;
|
||||
margin: 0;
|
||||
padding: 0;
|
||||
font-weight: 300;
|
||||
letter-spacing: 1pt;
|
||||
}
|
||||
|
||||
/* Geometric pattern - diamond shape without rotation */
|
||||
.pattern {
|
||||
position: absolute;
|
||||
bottom: 40pt;
|
||||
left: 80pt;
|
||||
width: 42pt;
|
||||
height: 42pt;
|
||||
border: 2pt solid #D4AF37;
|
||||
opacity: 0.3;
|
||||
}
|
||||
|
||||
.pattern-inner {
|
||||
position: absolute;
|
||||
top: 10pt;
|
||||
left: 10pt;
|
||||
width: 20pt;
|
||||
height: 20pt;
|
||||
border: 2pt solid #D4AF37;
|
||||
}
|
||||
</style>
|
||||
</head>
|
||||
<body>
|
||||
<div class="slide-content">
|
||||
<div class="flag-green"></div>
|
||||
<div class="flag-white"></div>
|
||||
<div class="flag-red"></div>
|
||||
|
||||
<div class="gold-bar"></div>
|
||||
|
||||
<div class="title-container">
|
||||
<h1>ALIMENTARI<br>PICCOLO</h1>
|
||||
<p>意大利餐吧 · 番禺路</p>
|
||||
</div>
|
||||
|
||||
<div class="pattern">
|
||||
<div class="pattern-inner"></div>
|
||||
</div>
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
||||
145
work_chinese/PPT04122025/slides_backup/slide2_ambiance.html
Normal file
@ -0,0 +1,145 @@
|
||||
<!DOCTYPE html>
|
||||
<html>
|
||||
<head>
|
||||
<style>
|
||||
html { background: #ffffff; }
|
||||
body {
|
||||
width: 720pt;
|
||||
height: 405pt;
|
||||
margin: 0;
|
||||
padding: 0;
|
||||
background: #F5EFE0;
|
||||
font-family: Georgia, serif;
|
||||
display: flex;
|
||||
}
|
||||
|
||||
.slide-content {
|
||||
width: 100%;
|
||||
height: 100%;
|
||||
position: relative;
|
||||
}
|
||||
|
||||
/* Italian flag diagonal - simple rectangles positioned diagonally */
|
||||
.flag-green {
|
||||
position: absolute;
|
||||
top: 15pt;
|
||||
left: 15pt;
|
||||
width: 45pt;
|
||||
height: 12pt;
|
||||
background: #2D5016;
|
||||
opacity: 0.85;
|
||||
}
|
||||
|
||||
.flag-white {
|
||||
position: absolute;
|
||||
top: 27pt;
|
||||
left: 27pt;
|
||||
width: 45pt;
|
||||
height: 12pt;
|
||||
background: #F5F5DC;
|
||||
opacity: 0.85;
|
||||
}
|
||||
|
||||
.flag-red {
|
||||
position: absolute;
|
||||
top: 39pt;
|
||||
left: 39pt;
|
||||
width: 45pt;
|
||||
height: 12pt;
|
||||
background: #8B1A1A;
|
||||
opacity: 0.85;
|
||||
}
|
||||
|
||||
/* Photo grid */
|
||||
.photo-grid {
|
||||
position: absolute;
|
||||
top: 40pt;
|
||||
left: 40pt;
|
||||
right: 40pt;
|
||||
bottom: 140pt;
|
||||
display: grid;
|
||||
grid-template-columns: 1fr 1fr;
|
||||
gap: 15pt;
|
||||
}
|
||||
|
||||
.photo-large {
|
||||
grid-column: span 2;
|
||||
border-radius: 8pt;
|
||||
overflow: hidden;
|
||||
box-shadow: 0 4pt 20pt rgba(0, 0, 0, 0.1);
|
||||
}
|
||||
|
||||
.photo-small {
|
||||
border-radius: 8pt;
|
||||
overflow: hidden;
|
||||
box-shadow: 0 4pt 20pt rgba(0, 0, 0, 0.1);
|
||||
}
|
||||
|
||||
.photo-large img,
|
||||
.photo-small img {
|
||||
width: 100%;
|
||||
height: 100%;
|
||||
object-fit: cover;
|
||||
}
|
||||
|
||||
/* Info bar */
|
||||
.info-bar {
|
||||
position: absolute;
|
||||
bottom: 50pt;
|
||||
left: 40pt;
|
||||
right: 40pt;
|
||||
display: flex;
|
||||
justify-content: space-around;
|
||||
}
|
||||
|
||||
.info-item p {
|
||||
font-size: 16pt;
|
||||
color: #8B9B83;
|
||||
margin: 0;
|
||||
padding: 0;
|
||||
text-align: center;
|
||||
}
|
||||
|
||||
.info-value {
|
||||
font-size: 20pt;
|
||||
color: #B8867D;
|
||||
font-weight: 600;
|
||||
margin-top: 5pt;
|
||||
}
|
||||
</style>
|
||||
</head>
|
||||
<body>
|
||||
<div class="slide-content">
|
||||
<div class="flag-green"></div>
|
||||
<div class="flag-white"></div>
|
||||
<div class="flag-red"></div>
|
||||
|
||||
<div class="photo-grid">
|
||||
<div class="photo-large">
|
||||
<img src="file:///C:/Users/alexi/Documents/projects/couple-repo/work_chinese/PPT04122025/pptx_build/OutsideResto.jpg" alt="Outside">
|
||||
</div>
|
||||
<div class="photo-small">
|
||||
<img src="file:///C:/Users/alexi/Documents/projects/couple-repo/work_chinese/PPT04122025/pptx_build/InsideResto.jpg" alt="Inside">
|
||||
</div>
|
||||
<div class="photo-small">
|
||||
<img src="file:///C:/Users/alexi/Documents/projects/couple-repo/work_chinese/PPT04122025/pptx_build/LayoutTable.jpg" alt="Table">
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="info-bar">
|
||||
<div class="info-item">
|
||||
<p>📍</p>
|
||||
<p class="info-value">番禺路390号</p>
|
||||
</div>
|
||||
<div class="info-item">
|
||||
<p>⭐</p>
|
||||
<p class="info-value">4.4/5</p>
|
||||
</div>
|
||||
<div class="info-item">
|
||||
<p>💰</p>
|
||||
<p class="info-value">¥136/人</p>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
||||
146
work_chinese/PPT04122025/slides_backup/slide2_location.html
Normal file
@ -0,0 +1,146 @@
|
||||
<!DOCTYPE html>
|
||||
<html>
|
||||
<head>
|
||||
<style>
|
||||
html { background: #ffffff; }
|
||||
body {
|
||||
width: 720pt;
|
||||
height: 405pt;
|
||||
margin: 0;
|
||||
padding: 0;
|
||||
background: #1A1A1A;
|
||||
font-family: Georgia, serif;
|
||||
display: flex;
|
||||
}
|
||||
|
||||
.slide-content {
|
||||
width: 100%;
|
||||
height: 100%;
|
||||
position: relative;
|
||||
}
|
||||
|
||||
/* Italian flag diagonal - simple rectangles positioned diagonally */
|
||||
.flag-green {
|
||||
position: absolute;
|
||||
top: 15pt;
|
||||
left: 15pt;
|
||||
width: 45pt;
|
||||
height: 12pt;
|
||||
background: #2D5016;
|
||||
opacity: 0.85;
|
||||
}
|
||||
|
||||
.flag-white {
|
||||
position: absolute;
|
||||
top: 27pt;
|
||||
left: 27pt;
|
||||
width: 45pt;
|
||||
height: 12pt;
|
||||
background: #F5F5DC;
|
||||
opacity: 0.85;
|
||||
}
|
||||
|
||||
.flag-red {
|
||||
position: absolute;
|
||||
top: 39pt;
|
||||
left: 39pt;
|
||||
width: 45pt;
|
||||
height: 12pt;
|
||||
background: #8B1A1A;
|
||||
opacity: 0.85;
|
||||
}
|
||||
|
||||
/* Signature gold bar */
|
||||
.gold-bar {
|
||||
position: absolute;
|
||||
right: 60pt;
|
||||
top: 60pt;
|
||||
bottom: 60pt;
|
||||
width: 3pt;
|
||||
background: #D4AF37;
|
||||
z-index: 5;
|
||||
}
|
||||
|
||||
/* Main photo */
|
||||
.hero-photo {
|
||||
position: absolute;
|
||||
top: 60pt;
|
||||
left: 60pt;
|
||||
right: 100pt;
|
||||
bottom: 160pt;
|
||||
border-radius: 4pt;
|
||||
overflow: hidden;
|
||||
box-shadow: 0 8pt 30pt rgba(0, 0, 0, 0.5);
|
||||
}
|
||||
|
||||
.hero-photo img {
|
||||
width: 100%;
|
||||
height: 100%;
|
||||
object-fit: cover;
|
||||
}
|
||||
|
||||
/* Info overlay */
|
||||
.info-overlay {
|
||||
position: absolute;
|
||||
bottom: 60pt;
|
||||
left: 60pt;
|
||||
right: 100pt;
|
||||
height: 80pt;
|
||||
background: rgba(26, 26, 26, 0.95);
|
||||
border-left: 4pt solid #D4AF37;
|
||||
display: flex;
|
||||
align-items: center;
|
||||
justify-content: space-around;
|
||||
padding: 0 30pt;
|
||||
}
|
||||
|
||||
.info-item {
|
||||
text-align: center;
|
||||
}
|
||||
|
||||
.info-item p:first-child {
|
||||
font-size: 14pt;
|
||||
color: #999999;
|
||||
margin: 0 0 5pt 0;
|
||||
padding: 0;
|
||||
letter-spacing: 1pt;
|
||||
}
|
||||
|
||||
.info-item p:last-child {
|
||||
font-size: 22pt;
|
||||
color: #D4AF37;
|
||||
margin: 0;
|
||||
padding: 0;
|
||||
font-weight: 600;
|
||||
}
|
||||
</style>
|
||||
</head>
|
||||
<body>
|
||||
<div class="slide-content">
|
||||
<div class="flag-green"></div>
|
||||
<div class="flag-white"></div>
|
||||
<div class="flag-red"></div>
|
||||
|
||||
<div class="gold-bar"></div>
|
||||
|
||||
<div class="hero-photo">
|
||||
<img src="file:///C:/Users/alexi/Documents/projects/couple-repo/work_chinese/PPT04122025/pptx_build/OutsideResto.jpg" alt="Outside">
|
||||
</div>
|
||||
|
||||
<div class="info-overlay">
|
||||
<div class="info-item">
|
||||
<p>位置</p>
|
||||
<p>番禺路390号</p>
|
||||
</div>
|
||||
<div class="info-item">
|
||||
<p>评分</p>
|
||||
<p>4.4★</p>
|
||||
</div>
|
||||
<div class="info-item">
|
||||
<p>价格</p>
|
||||
<p>¥136</p>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
||||
163
work_chinese/PPT04122025/slides_backup/slide3_piadina.html
Normal file
@ -0,0 +1,163 @@
|
||||
<!DOCTYPE html>
|
||||
<html>
|
||||
<head>
|
||||
<style>
|
||||
html { background: #ffffff; }
|
||||
body {
|
||||
width: 720pt;
|
||||
height: 405pt;
|
||||
margin: 0;
|
||||
padding: 0;
|
||||
background: #1A1A1A;
|
||||
font-family: Georgia, serif;
|
||||
display: flex;
|
||||
}
|
||||
|
||||
.slide-content {
|
||||
width: 100%;
|
||||
height: 100%;
|
||||
position: relative;
|
||||
}
|
||||
|
||||
/* Italian flag diagonal - simple rectangles positioned diagonally */
|
||||
.flag-green {
|
||||
position: absolute;
|
||||
top: 15pt;
|
||||
left: 15pt;
|
||||
width: 45pt;
|
||||
height: 12pt;
|
||||
background: #2D5016;
|
||||
opacity: 0.85;
|
||||
}
|
||||
|
||||
.flag-white {
|
||||
position: absolute;
|
||||
top: 27pt;
|
||||
left: 27pt;
|
||||
width: 45pt;
|
||||
height: 12pt;
|
||||
background: #F5F5DC;
|
||||
opacity: 0.85;
|
||||
}
|
||||
|
||||
.flag-red {
|
||||
position: absolute;
|
||||
top: 39pt;
|
||||
left: 39pt;
|
||||
width: 45pt;
|
||||
height: 12pt;
|
||||
background: #8B1A1A;
|
||||
opacity: 0.85;
|
||||
}
|
||||
|
||||
/* Signature gold bar */
|
||||
.gold-bar {
|
||||
position: absolute;
|
||||
right: 300pt;
|
||||
top: 60pt;
|
||||
bottom: 60pt;
|
||||
width: 3pt;
|
||||
background: #D4AF37;
|
||||
z-index: 5;
|
||||
}
|
||||
|
||||
/* Dish photo */
|
||||
.dish-photo {
|
||||
position: absolute;
|
||||
top: 60pt;
|
||||
left: 60pt;
|
||||
right: 330pt;
|
||||
bottom: 80pt;
|
||||
border-radius: 4pt;
|
||||
overflow: hidden;
|
||||
box-shadow: 0 8pt 30pt rgba(0, 0, 0, 0.6);
|
||||
}
|
||||
|
||||
.dish-photo img {
|
||||
width: 100%;
|
||||
height: 100%;
|
||||
object-fit: cover;
|
||||
}
|
||||
|
||||
/* Info section */
|
||||
.dish-info {
|
||||
position: absolute;
|
||||
right: 60pt;
|
||||
top: 120pt;
|
||||
width: 200pt;
|
||||
}
|
||||
|
||||
.dish-info h1 {
|
||||
font-size: 38pt;
|
||||
font-weight: 700;
|
||||
color: #D4AF37;
|
||||
margin: 0 0 10pt 0;
|
||||
padding: 0;
|
||||
line-height: 1.1;
|
||||
letter-spacing: 1pt;
|
||||
}
|
||||
|
||||
.dish-info p {
|
||||
font-size: 16pt;
|
||||
color: #8B8B8B;
|
||||
margin: 0 0 30pt 0;
|
||||
padding: 0;
|
||||
}
|
||||
|
||||
.keyword-box {
|
||||
margin: 10pt 0;
|
||||
padding: 0 0 0 15pt;
|
||||
border-left: 2pt solid #2D5016;
|
||||
}
|
||||
|
||||
.keyword-box p {
|
||||
font-size: 14pt;
|
||||
color: #C9C9C9;
|
||||
margin: 0;
|
||||
padding: 0;
|
||||
}
|
||||
|
||||
/* Price */
|
||||
.price {
|
||||
position: absolute;
|
||||
right: 60pt;
|
||||
bottom: 60pt;
|
||||
font-size: 32pt;
|
||||
color: #D4AF37;
|
||||
font-weight: 700;
|
||||
margin: 0;
|
||||
padding: 0;
|
||||
letter-spacing: 2pt;
|
||||
}
|
||||
</style>
|
||||
</head>
|
||||
<body>
|
||||
<div class="slide-content">
|
||||
<div class="flag-green"></div>
|
||||
<div class="flag-white"></div>
|
||||
<div class="flag-red"></div>
|
||||
|
||||
<div class="gold-bar"></div>
|
||||
|
||||
<div class="dish-photo">
|
||||
<img src="file:///C:/Users/alexi/Documents/projects/couple-repo/work_chinese/PPT04122025/pptx_build/piadina.jpg" alt="Piadina">
|
||||
</div>
|
||||
|
||||
<div class="dish-info">
|
||||
<h1>PIADINA</h1>
|
||||
<p>意式皮亚迪纳</p>
|
||||
<div class="keyword-box">
|
||||
<p>现烤薄饼</p>
|
||||
</div>
|
||||
<div class="keyword-box">
|
||||
<p>新鲜蔬菜</p>
|
||||
</div>
|
||||
<div class="keyword-box">
|
||||
<p>意式火腿</p>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<p class="price">¥65-75</p>
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
||||
163
work_chinese/PPT04122025/slides_backup/slide4_croquettes.html
Normal file
@ -0,0 +1,163 @@
|
||||
<!DOCTYPE html>
|
||||
<html>
|
||||
<head>
|
||||
<style>
|
||||
html { background: #ffffff; }
|
||||
body {
|
||||
width: 720pt;
|
||||
height: 405pt;
|
||||
margin: 0;
|
||||
padding: 0;
|
||||
background: #1A1A1A;
|
||||
font-family: Georgia, serif;
|
||||
display: flex;
|
||||
}
|
||||
|
||||
.slide-content {
|
||||
width: 100%;
|
||||
height: 100%;
|
||||
position: relative;
|
||||
}
|
||||
|
||||
/* Italian flag diagonal - simple rectangles positioned diagonally */
|
||||
.flag-green {
|
||||
position: absolute;
|
||||
top: 15pt;
|
||||
left: 15pt;
|
||||
width: 45pt;
|
||||
height: 12pt;
|
||||
background: #2D5016;
|
||||
opacity: 0.85;
|
||||
}
|
||||
|
||||
.flag-white {
|
||||
position: absolute;
|
||||
top: 27pt;
|
||||
left: 27pt;
|
||||
width: 45pt;
|
||||
height: 12pt;
|
||||
background: #F5F5DC;
|
||||
opacity: 0.85;
|
||||
}
|
||||
|
||||
.flag-red {
|
||||
position: absolute;
|
||||
top: 39pt;
|
||||
left: 39pt;
|
||||
width: 45pt;
|
||||
height: 12pt;
|
||||
background: #8B1A1A;
|
||||
opacity: 0.85;
|
||||
}
|
||||
|
||||
/* Signature gold bar */
|
||||
.gold-bar {
|
||||
position: absolute;
|
||||
left: 300pt;
|
||||
top: 60pt;
|
||||
bottom: 60pt;
|
||||
width: 3pt;
|
||||
background: #D4AF37;
|
||||
z-index: 5;
|
||||
}
|
||||
|
||||
/* Dish photo */
|
||||
.dish-photo {
|
||||
position: absolute;
|
||||
top: 60pt;
|
||||
right: 60pt;
|
||||
left: 330pt;
|
||||
bottom: 80pt;
|
||||
border-radius: 4pt;
|
||||
overflow: hidden;
|
||||
box-shadow: 0 8pt 30pt rgba(0, 0, 0, 0.6);
|
||||
}
|
||||
|
||||
.dish-photo img {
|
||||
width: 100%;
|
||||
height: 100%;
|
||||
object-fit: cover;
|
||||
}
|
||||
|
||||
/* Info section */
|
||||
.dish-info {
|
||||
position: absolute;
|
||||
left: 60pt;
|
||||
top: 120pt;
|
||||
width: 200pt;
|
||||
}
|
||||
|
||||
.dish-info h1 {
|
||||
font-size: 36pt;
|
||||
font-weight: 700;
|
||||
color: #D4AF37;
|
||||
margin: 0 0 10pt 0;
|
||||
padding: 0;
|
||||
line-height: 1.1;
|
||||
letter-spacing: 1pt;
|
||||
}
|
||||
|
||||
.dish-info p {
|
||||
font-size: 16pt;
|
||||
color: #8B8B8B;
|
||||
margin: 0 0 30pt 0;
|
||||
padding: 0;
|
||||
}
|
||||
|
||||
.keyword-box {
|
||||
margin: 10pt 0;
|
||||
padding: 0 0 0 15pt;
|
||||
border-left: 2pt solid #8B1A1A;
|
||||
}
|
||||
|
||||
.keyword-box p {
|
||||
font-size: 14pt;
|
||||
color: #C9C9C9;
|
||||
margin: 0;
|
||||
padding: 0;
|
||||
}
|
||||
|
||||
/* Price */
|
||||
.price {
|
||||
position: absolute;
|
||||
left: 60pt;
|
||||
bottom: 60pt;
|
||||
font-size: 32pt;
|
||||
color: #D4AF37;
|
||||
font-weight: 700;
|
||||
margin: 0;
|
||||
padding: 0;
|
||||
letter-spacing: 2pt;
|
||||
}
|
||||
</style>
|
||||
</head>
|
||||
<body>
|
||||
<div class="slide-content">
|
||||
<div class="flag-green"></div>
|
||||
<div class="flag-white"></div>
|
||||
<div class="flag-red"></div>
|
||||
|
||||
<div class="gold-bar"></div>
|
||||
|
||||
<div class="dish-photo">
|
||||
<img src="file:///C:/Users/alexi/Documents/projects/couple-repo/work_chinese/PPT04122025/pptx_build/croquettes.jpg" alt="Croquettes">
|
||||
</div>
|
||||
|
||||
<div class="dish-info">
|
||||
<h1>CROQUETTES</h1>
|
||||
<p>意式炸肉丸</p>
|
||||
<div class="keyword-box">
|
||||
<p>金黄酥脆</p>
|
||||
</div>
|
||||
<div class="keyword-box">
|
||||
<p>肉质鲜嫩</p>
|
||||
</div>
|
||||
<div class="keyword-box">
|
||||
<p>奶油酱汁</p>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<p class="price">¥65</p>
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
||||
164
work_chinese/PPT04122025/slides_backup/slide5_ambiance.html
Normal file
@ -0,0 +1,164 @@
|
||||
<!DOCTYPE html>
|
||||
<html>
|
||||
<head>
|
||||
<style>
|
||||
html { background: #ffffff; }
|
||||
body {
|
||||
width: 720pt;
|
||||
height: 405pt;
|
||||
margin: 0;
|
||||
padding: 0;
|
||||
background: #1A1A1A;
|
||||
font-family: Georgia, serif;
|
||||
display: flex;
|
||||
}
|
||||
|
||||
.slide-content {
|
||||
width: 100%;
|
||||
height: 100%;
|
||||
position: relative;
|
||||
}
|
||||
|
||||
/* Italian flag diagonal - simple rectangles positioned diagonally */
|
||||
.flag-green {
|
||||
position: absolute;
|
||||
top: 15pt;
|
||||
left: 15pt;
|
||||
width: 45pt;
|
||||
height: 12pt;
|
||||
background: #2D5016;
|
||||
opacity: 0.85;
|
||||
}
|
||||
|
||||
.flag-white {
|
||||
position: absolute;
|
||||
top: 27pt;
|
||||
left: 27pt;
|
||||
width: 45pt;
|
||||
height: 12pt;
|
||||
background: #F5F5DC;
|
||||
opacity: 0.85;
|
||||
}
|
||||
|
||||
.flag-red {
|
||||
position: absolute;
|
||||
top: 39pt;
|
||||
left: 39pt;
|
||||
width: 45pt;
|
||||
height: 12pt;
|
||||
background: #8B1A1A;
|
||||
opacity: 0.85;
|
||||
}
|
||||
|
||||
/* Signature gold bar */
|
||||
.gold-bar {
|
||||
position: absolute;
|
||||
right: 60pt;
|
||||
top: 60pt;
|
||||
bottom: 60pt;
|
||||
width: 3pt;
|
||||
background: #D4AF37;
|
||||
z-index: 5;
|
||||
}
|
||||
|
||||
/* Photos section */
|
||||
.photo-left {
|
||||
position: absolute;
|
||||
top: 60pt;
|
||||
left: 60pt;
|
||||
width: 270pt;
|
||||
bottom: 80pt;
|
||||
border-radius: 4pt;
|
||||
overflow: hidden;
|
||||
box-shadow: 0 6pt 25pt rgba(0, 0, 0, 0.5);
|
||||
}
|
||||
|
||||
.photo-left img {
|
||||
width: 100%;
|
||||
height: 100%;
|
||||
object-fit: cover;
|
||||
}
|
||||
|
||||
.photo-right {
|
||||
position: absolute;
|
||||
top: 60pt;
|
||||
left: 350pt;
|
||||
right: 100pt;
|
||||
bottom: 190pt;
|
||||
border-radius: 4pt;
|
||||
overflow: hidden;
|
||||
box-shadow: 0 6pt 25pt rgba(0, 0, 0, 0.5);
|
||||
}
|
||||
|
||||
.photo-right img {
|
||||
width: 100%;
|
||||
height: 100%;
|
||||
object-fit: cover;
|
||||
}
|
||||
|
||||
/* Evaluation section */
|
||||
.eval-panel {
|
||||
position: absolute;
|
||||
bottom: 60pt;
|
||||
left: 350pt;
|
||||
right: 100pt;
|
||||
height: 100pt;
|
||||
background: rgba(26, 26, 26, 0.95);
|
||||
border-left: 4pt solid #D4AF37;
|
||||
padding: 20pt 25pt;
|
||||
}
|
||||
|
||||
.eval-panel h2 {
|
||||
font-size: 20pt;
|
||||
font-weight: 700;
|
||||
color: #D4AF37;
|
||||
margin: 0 0 15pt 0;
|
||||
padding: 0;
|
||||
letter-spacing: 2pt;
|
||||
}
|
||||
|
||||
.eval-row {
|
||||
display: flex;
|
||||
justify-content: space-between;
|
||||
}
|
||||
|
||||
.eval-row p {
|
||||
font-size: 14pt;
|
||||
color: #999999;
|
||||
margin: 0;
|
||||
padding: 0;
|
||||
}
|
||||
|
||||
.eval-row p span {
|
||||
color: #C9C9C9;
|
||||
font-weight: 600;
|
||||
}
|
||||
</style>
|
||||
</head>
|
||||
<body>
|
||||
<div class="slide-content">
|
||||
<div class="flag-green"></div>
|
||||
<div class="flag-white"></div>
|
||||
<div class="flag-red"></div>
|
||||
|
||||
<div class="gold-bar"></div>
|
||||
|
||||
<div class="photo-left">
|
||||
<img src="file:///C:/Users/alexi/Documents/projects/couple-repo/work_chinese/PPT04122025/pptx_build/InsideResto.jpg" alt="Inside">
|
||||
</div>
|
||||
|
||||
<div class="photo-right">
|
||||
<img src="file:///C:/Users/alexi/Documents/projects/couple-repo/work_chinese/PPT04122025/pptx_build/LayoutTable.jpg" alt="Table">
|
||||
</div>
|
||||
|
||||
<div class="eval-panel">
|
||||
<h2>VALUTAZIONE</h2>
|
||||
<div class="eval-row">
|
||||
<p>性价比 <span>优秀</span></p>
|
||||
<p>服务 <span>热情</span></p>
|
||||
<p>环境 <span>舒适</span></p>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
||||
158
work_chinese/PPT04122025/slides_backup/slide5_conclusion.html
Normal file
@ -0,0 +1,158 @@
|
||||
<!DOCTYPE html>
|
||||
<html>
|
||||
<head>
|
||||
<style>
|
||||
html { background: #ffffff; }
|
||||
body {
|
||||
width: 720pt;
|
||||
height: 405pt;
|
||||
margin: 0;
|
||||
padding: 0;
|
||||
background: #F5EFE0;
|
||||
font-family: Georgia, serif;
|
||||
display: flex;
|
||||
}
|
||||
|
||||
.slide-content {
|
||||
width: 100%;
|
||||
height: 100%;
|
||||
position: relative;
|
||||
}
|
||||
|
||||
/* Italian flag diagonal - simple rectangles positioned diagonally */
|
||||
.flag-green {
|
||||
position: absolute;
|
||||
top: 15pt;
|
||||
left: 15pt;
|
||||
width: 45pt;
|
||||
height: 12pt;
|
||||
background: #2D5016;
|
||||
opacity: 0.85;
|
||||
}
|
||||
|
||||
.flag-white {
|
||||
position: absolute;
|
||||
top: 27pt;
|
||||
left: 27pt;
|
||||
width: 45pt;
|
||||
height: 12pt;
|
||||
background: #F5F5DC;
|
||||
opacity: 0.85;
|
||||
}
|
||||
|
||||
.flag-red {
|
||||
position: absolute;
|
||||
top: 39pt;
|
||||
left: 39pt;
|
||||
width: 45pt;
|
||||
height: 12pt;
|
||||
background: #8B1A1A;
|
||||
opacity: 0.85;
|
||||
}
|
||||
|
||||
/* Menu photos */
|
||||
.menu-photos {
|
||||
position: absolute;
|
||||
top: 40pt;
|
||||
left: 40pt;
|
||||
right: 40pt;
|
||||
height: 180pt;
|
||||
display: grid;
|
||||
grid-template-columns: 1fr 1fr;
|
||||
gap: 20pt;
|
||||
}
|
||||
|
||||
.menu-card {
|
||||
border-radius: 10pt;
|
||||
overflow: hidden;
|
||||
box-shadow: 0 4pt 15pt rgba(0, 0, 0, 0.1);
|
||||
}
|
||||
|
||||
.menu-card img {
|
||||
width: 100%;
|
||||
height: 100%;
|
||||
object-fit: cover;
|
||||
}
|
||||
|
||||
/* Evaluation section */
|
||||
.eval-section {
|
||||
position: absolute;
|
||||
bottom: 50pt;
|
||||
left: 40pt;
|
||||
right: 40pt;
|
||||
text-align: center;
|
||||
}
|
||||
|
||||
.eval-section h2 {
|
||||
font-size: 28pt;
|
||||
font-weight: 400;
|
||||
color: #8B9B83;
|
||||
margin: 0 0 15pt 0;
|
||||
padding: 0;
|
||||
}
|
||||
|
||||
.eval-grid {
|
||||
display: flex;
|
||||
justify-content: space-around;
|
||||
margin-top: 15pt;
|
||||
}
|
||||
|
||||
.eval-item p {
|
||||
font-size: 15pt;
|
||||
color: #666666;
|
||||
margin: 0;
|
||||
padding: 0;
|
||||
}
|
||||
|
||||
.eval-value {
|
||||
font-size: 20pt;
|
||||
color: #B8867D;
|
||||
font-weight: 600;
|
||||
margin-top: 5pt;
|
||||
}
|
||||
|
||||
.divider {
|
||||
width: 60pt;
|
||||
height: 1pt;
|
||||
background: #C9A976;
|
||||
margin: 15pt auto;
|
||||
}
|
||||
</style>
|
||||
</head>
|
||||
<body>
|
||||
<div class="slide-content">
|
||||
<div class="flag-green"></div>
|
||||
<div class="flag-white"></div>
|
||||
<div class="flag-red"></div>
|
||||
|
||||
<div class="menu-photos">
|
||||
<div class="menu-card">
|
||||
<img src="file:///C:/Users/alexi/Documents/projects/couple-repo/work_chinese/PPT04122025/pptx_build/CarteCNNice.jpg" alt="Menu">
|
||||
</div>
|
||||
<div class="menu-card">
|
||||
<img src="file:///C:/Users/alexi/Documents/projects/couple-repo/work_chinese/PPT04122025/pptx_build/CarteENTravers.jpg" alt="Menu">
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="eval-section">
|
||||
<div class="divider"></div>
|
||||
<h2>值得一试</h2>
|
||||
|
||||
<div class="eval-grid">
|
||||
<div class="eval-item">
|
||||
<p>性价比</p>
|
||||
<p class="eval-value">优秀</p>
|
||||
</div>
|
||||
<div class="eval-item">
|
||||
<p>服务</p>
|
||||
<p class="eval-value">热情</p>
|
||||
</div>
|
||||
<div class="eval-item">
|
||||
<p>环境</p>
|
||||
<p class="eval-value">舒适</p>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
||||
134
work_chinese/PPT04122025/slides_backup/slide6_menu.html
Normal file
@ -0,0 +1,134 @@
|
||||
<!DOCTYPE html>
|
||||
<html>
|
||||
<head>
|
||||
<style>
|
||||
html { background: #ffffff; }
|
||||
body {
|
||||
width: 720pt;
|
||||
height: 405pt;
|
||||
margin: 0;
|
||||
padding: 0;
|
||||
background: #1A1A1A;
|
||||
font-family: Georgia, serif;
|
||||
display: flex;
|
||||
}
|
||||
|
||||
.slide-content {
|
||||
width: 100%;
|
||||
height: 100%;
|
||||
position: relative;
|
||||
}
|
||||
|
||||
/* Italian flag diagonal - simple rectangles positioned diagonally */
|
||||
.flag-green {
|
||||
position: absolute;
|
||||
top: 15pt;
|
||||
left: 15pt;
|
||||
width: 45pt;
|
||||
height: 12pt;
|
||||
background: #2D5016;
|
||||
opacity: 0.85;
|
||||
}
|
||||
|
||||
.flag-white {
|
||||
position: absolute;
|
||||
top: 27pt;
|
||||
left: 27pt;
|
||||
width: 45pt;
|
||||
height: 12pt;
|
||||
background: #F5F5DC;
|
||||
opacity: 0.85;
|
||||
}
|
||||
|
||||
.flag-red {
|
||||
position: absolute;
|
||||
top: 39pt;
|
||||
left: 39pt;
|
||||
width: 45pt;
|
||||
height: 12pt;
|
||||
background: #8B1A1A;
|
||||
opacity: 0.85;
|
||||
}
|
||||
|
||||
/* Signature gold bar */
|
||||
.gold-bar {
|
||||
position: absolute;
|
||||
right: 60pt;
|
||||
top: 60pt;
|
||||
bottom: 60pt;
|
||||
width: 3pt;
|
||||
background: #D4AF37;
|
||||
z-index: 5;
|
||||
}
|
||||
|
||||
/* Menu photo centered */
|
||||
.menu-center {
|
||||
position: absolute;
|
||||
top: 80pt;
|
||||
left: 50%;
|
||||
transform: translateX(-50%);
|
||||
width: 300pt;
|
||||
height: 260pt;
|
||||
border-radius: 4pt;
|
||||
overflow: hidden;
|
||||
box-shadow: 0 8pt 30pt rgba(0, 0, 0, 0.6);
|
||||
}
|
||||
|
||||
.menu-center img {
|
||||
width: 100%;
|
||||
height: 100%;
|
||||
object-fit: cover;
|
||||
}
|
||||
|
||||
/* Title */
|
||||
.menu-title {
|
||||
position: absolute;
|
||||
top: 80pt;
|
||||
left: 60pt;
|
||||
right: 100pt;
|
||||
text-align: center;
|
||||
}
|
||||
|
||||
.menu-title h1 {
|
||||
font-size: 32pt;
|
||||
font-weight: 700;
|
||||
color: #D4AF37;
|
||||
margin: 0;
|
||||
padding: 0;
|
||||
letter-spacing: 3pt;
|
||||
}
|
||||
|
||||
/* Geometric pattern */
|
||||
.pattern {
|
||||
position: absolute;
|
||||
bottom: 60pt;
|
||||
left: 50%;
|
||||
transform: translateX(-50%);
|
||||
width: 50pt;
|
||||
height: 50pt;
|
||||
border: 2pt solid #D4AF37;
|
||||
transform: translateX(-50%) rotate(45deg);
|
||||
opacity: 0.3;
|
||||
}
|
||||
</style>
|
||||
</head>
|
||||
<body>
|
||||
<div class="slide-content">
|
||||
<div class="flag-green"></div>
|
||||
<div class="flag-white"></div>
|
||||
<div class="flag-red"></div>
|
||||
|
||||
<div class="gold-bar"></div>
|
||||
|
||||
<div class="menu-title">
|
||||
<h1>菜单</h1>
|
||||
</div>
|
||||
|
||||
<div class="menu-center">
|
||||
<img src="file:///C:/Users/alexi/Documents/projects/couple-repo/work_chinese/PPT04122025/pptx_build/CarteCNNice.jpg" alt="Menu CN">
|
||||
</div>
|
||||
|
||||
<div class="pattern"></div>
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
||||
132
work_chinese/PPT04122025/slides_backup/slide7_credits.html
Normal file
@ -0,0 +1,132 @@
|
||||
<!DOCTYPE html>
|
||||
<html>
|
||||
<head>
|
||||
<style>
|
||||
html { background: #ffffff; }
|
||||
body {
|
||||
width: 720pt;
|
||||
height: 405pt;
|
||||
margin: 0;
|
||||
padding: 0;
|
||||
background: #1A1A1A;
|
||||
font-family: Georgia, serif;
|
||||
display: flex;
|
||||
}
|
||||
|
||||
.slide-content {
|
||||
width: 100%;
|
||||
height: 100%;
|
||||
position: relative;
|
||||
}
|
||||
|
||||
/* Italian flag diagonal - simple rectangles positioned diagonally */
|
||||
.flag-green {
|
||||
position: absolute;
|
||||
top: 15pt;
|
||||
left: 15pt;
|
||||
width: 45pt;
|
||||
height: 12pt;
|
||||
background: #2D5016;
|
||||
opacity: 0.85;
|
||||
}
|
||||
|
||||
.flag-white {
|
||||
position: absolute;
|
||||
top: 27pt;
|
||||
left: 27pt;
|
||||
width: 45pt;
|
||||
height: 12pt;
|
||||
background: #F5F5DC;
|
||||
opacity: 0.85;
|
||||
}
|
||||
|
||||
.flag-red {
|
||||
position: absolute;
|
||||
top: 39pt;
|
||||
left: 39pt;
|
||||
width: 45pt;
|
||||
height: 12pt;
|
||||
background: #8B1A1A;
|
||||
opacity: 0.85;
|
||||
}
|
||||
|
||||
/* Signature gold bar */
|
||||
.gold-bar {
|
||||
position: absolute;
|
||||
right: 60pt;
|
||||
top: 60pt;
|
||||
bottom: 60pt;
|
||||
width: 3pt;
|
||||
background: #D4AF37;
|
||||
}
|
||||
|
||||
/* Credits container */
|
||||
.credits {
|
||||
position: absolute;
|
||||
top: 50%;
|
||||
left: 80pt;
|
||||
right: 100pt;
|
||||
transform: translateY(-50%);
|
||||
text-align: center;
|
||||
}
|
||||
|
||||
.credits h1 {
|
||||
font-size: 40pt;
|
||||
font-weight: 700;
|
||||
color: #D4AF37;
|
||||
margin: 0 0 50pt 0;
|
||||
padding: 0;
|
||||
letter-spacing: 3pt;
|
||||
}
|
||||
|
||||
.names {
|
||||
font-size: 28pt;
|
||||
color: #C9C9C9;
|
||||
line-height: 1.8;
|
||||
margin: 0;
|
||||
padding: 0;
|
||||
letter-spacing: 2pt;
|
||||
}
|
||||
|
||||
/* Geometric pattern */
|
||||
.pattern {
|
||||
position: absolute;
|
||||
bottom: 40pt;
|
||||
left: 50%;
|
||||
transform: translateX(-50%) rotate(45deg);
|
||||
width: 60pt;
|
||||
height: 60pt;
|
||||
border: 2pt solid #D4AF37;
|
||||
opacity: 0.3;
|
||||
}
|
||||
|
||||
.pattern-inner {
|
||||
position: absolute;
|
||||
top: 50%;
|
||||
left: 50%;
|
||||
transform: translate(-50%, -50%);
|
||||
width: 30pt;
|
||||
height: 30pt;
|
||||
border: 2pt solid #D4AF37;
|
||||
}
|
||||
</style>
|
||||
</head>
|
||||
<body>
|
||||
<div class="slide-content">
|
||||
<div class="flag-green"></div>
|
||||
<div class="flag-white"></div>
|
||||
<div class="flag-red"></div>
|
||||
|
||||
<div class="gold-bar"></div>
|
||||
|
||||
<div class="credits">
|
||||
<h1>GRAZIE</h1>
|
||||
<p class="names">李知珉<br>闵智铉<br>亓昊天</p>
|
||||
</div>
|
||||
|
||||
<div class="pattern">
|
||||
<div class="pattern-inner"></div>
|
||||
</div>
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
||||