From 6d29ad73e2f20c920d0b674d0adac448003b2f4d Mon Sep 17 00:00:00 2001 From: Yasho9797 Date: Tue, 26 May 2026 12:24:16 +0300 Subject: [PATCH 01/12] add: Yaeljoke --- src/students/index.ts | 9 +++++++++ src/students/yael-shoham/Card.tsx | 11 +++++++++++ src/students/yael-shoham/JokePage.tsx | 14 ++++++++++++++ src/students/yael-shoham/styles.module.css | 0 4 files changed, 34 insertions(+) create mode 100644 src/students/yael-shoham/Card.tsx create mode 100644 src/students/yael-shoham/JokePage.tsx create mode 100644 src/students/yael-shoham/styles.module.css diff --git a/src/students/index.ts b/src/students/index.ts index 5be78e7..8d1a97f 100644 --- a/src/students/index.ts +++ b/src/students/index.ts @@ -5,6 +5,8 @@ import DanaDuviJokePage from "./dana-duvi/JokePage"; import ChaniChanzinCard from "./chani-chanzin/Card"; import ChaniChanzinJokePage from "./chani-chanzin/JokePage"; +import YaelCard from "./yael-shoham/Card"; +import YaelJokePage from "./yael-shoham/JokePage"; // ⚠️ סדר הרשימה חייב להיות לפי סדר האלף-בית העברי לפי שם המשפחה. // כל תלמידה מוסיפה את עצמה במקום הנכון ידנית. @@ -17,6 +19,13 @@ const students: Student[] = [ CardComponent: DanaDuviCard, JokePageComponent: DanaDuviJokePage, }, + { + id: "Yael-Shoham", + name: "יעל שהם", + jokeTitle: "הילד המדבר", + CardComponent: YaelCard, + JokePageComponent: YaelJokePage, +}, { id: "chani-chanzin", name: "חני חנזין", diff --git a/src/students/yael-shoham/Card.tsx b/src/students/yael-shoham/Card.tsx new file mode 100644 index 0000000..6b78292 --- /dev/null +++ b/src/students/yael-shoham/Card.tsx @@ -0,0 +1,11 @@ +import styles from "./styles.module.css"; +import { CardProps } from "../../types"; + +export default function YaelCard({ student, onClick }: CardProps) { + return ( +
+

{student.jokeTitle}

+

{student.name}

+
+ ); +} \ No newline at end of file diff --git a/src/students/yael-shoham/JokePage.tsx b/src/students/yael-shoham/JokePage.tsx new file mode 100644 index 0000000..6ed72b7 --- /dev/null +++ b/src/students/yael-shoham/JokePage.tsx @@ -0,0 +1,14 @@ +import styles from "./styles.module.css"; +import { PageProps } from "../../types"; + +export default function YaelJokePage({ onBack }: PageProps) { + return ( +
+

מדוע לדבר לעצמי?

+

אמא שואלת את הילד: "למה אתה מדבר עם עצמך?" + הילד עונה: "כי אני היחיד שמבין אותי." + אמא: "טוב, לפחות דבר עם מישהו חכם."

+ +
+ ); +} \ No newline at end of file diff --git a/src/students/yael-shoham/styles.module.css b/src/students/yael-shoham/styles.module.css new file mode 100644 index 0000000..e69de29 From a96f1cb1fa4dc8b88299414c818cdf3ac44bf7b7 Mon Sep 17 00:00:00 2001 From: toar lev Date: Tue, 26 May 2026 12:33:28 +0300 Subject: [PATCH 02/12] add: Tamar joke --- src/students/index.ts | 12 +++- src/students/tamar-lev/Card.tsx | 11 ++++ src/students/tamar-lev/JokePage.tsx | 12 ++++ src/students/tamar-lev/styles.module.css | 82 ++++++++++++++++++++++++ 4 files changed, 116 insertions(+), 1 deletion(-) create mode 100644 src/students/tamar-lev/Card.tsx create mode 100644 src/students/tamar-lev/JokePage.tsx create mode 100644 src/students/tamar-lev/styles.module.css diff --git a/src/students/index.ts b/src/students/index.ts index 5be78e7..587ffc7 100644 --- a/src/students/index.ts +++ b/src/students/index.ts @@ -6,9 +6,12 @@ import DanaDuviJokePage from "./dana-duvi/JokePage"; import ChaniChanzinCard from "./chani-chanzin/Card"; import ChaniChanzinJokePage from "./chani-chanzin/JokePage"; +import TamarCard from "./tamar-lev/Card"; +import TamarJokePage from "./tamar-lev/JokePage"; + // ⚠️ סדר הרשימה חייב להיות לפי סדר האלף-בית העברי לפי שם המשפחה. // כל תלמידה מוסיפה את עצמה במקום הנכון ידנית. -// אסור להשתמש בפונקציית-sort! +// אסור להשתמש בפונקציית-sort! const students: Student[] = [ { id: "dana-duvi", @@ -24,6 +27,13 @@ const students: Student[] = [ CardComponent: ChaniChanzinCard, JokePageComponent: ChaniChanzinJokePage, }, + { + id: "Tamar-Lev", + name: "תמר לב", + jokeTitle: "החושך והאור", + CardComponent: TamarCard, + JokePageComponent: TamarJokePage, + }, ]; export default students; diff --git a/src/students/tamar-lev/Card.tsx b/src/students/tamar-lev/Card.tsx new file mode 100644 index 0000000..258d700 --- /dev/null +++ b/src/students/tamar-lev/Card.tsx @@ -0,0 +1,11 @@ +import styles from "./styles.module.css"; +import { CardProps } from "../../types"; + +export default function TamarCard({ student, onClick }: CardProps) { + return ( +
+

{student.jokeTitle}

+

{student.name}

+
+ ); +} \ No newline at end of file diff --git a/src/students/tamar-lev/JokePage.tsx b/src/students/tamar-lev/JokePage.tsx new file mode 100644 index 0000000..2daaf60 --- /dev/null +++ b/src/students/tamar-lev/JokePage.tsx @@ -0,0 +1,12 @@ +import styles from "./styles.module.css"; +import { PageProps } from "../../types"; + +export default function TamarJokePage({ onBack }: PageProps) { + return ( +
+

למה מתכנתים מעדיפים מצב חשוך?

+      

כי האור מושך באגים!

+ +
+ ); +} \ No newline at end of file diff --git a/src/students/tamar-lev/styles.module.css b/src/students/tamar-lev/styles.module.css new file mode 100644 index 0000000..ab1d8d2 --- /dev/null +++ b/src/students/tamar-lev/styles.module.css @@ -0,0 +1,82 @@ +/* עיצוב לעמוד הבדיחה הראשי */ +.jokePage { + display: flex; + flex-direction: column; + align-items: center; + justify-content: center; + min-height: 50vh; + background-color: #1a1a1a; /* רקע כהה */ + color: #ffffff; /* טקסט לבן */ + padding: 40px; + border-radius: 12px; + box-shadow: 0 4px 20px rgba(0, 0, 0, 0.3); + text-align: center; + font-family: sans-serif; +} + +/* עיצוב פסקאות הטקסט בתוך העמוד */ +.jokePage p { + font-size: 1.5rem; + margin: 15px 0; + line-height: 1.6; +} + +/* הפסקה של התשובה (הפאנץ' ליין) */ +.jokePage p:nth-of-type(2) { + font-weight: bold; + color: #4caf50; /* צבע ירוק להדגשת התשובה */ +} + +/* עיצוב כפתור החזרה */ +.jokePage button { + margin-top: 30px; + padding: 10px 25px; + font-size: 1rem; + background-color: #333333; + color: #ffffff; + border: 1px solid #555555; + border-radius: 6px; + cursor: pointer; + transition: background-color 0.2s ease, transform 0.1s ease; +} + +.jokePage button:hover { + background-color: #444444; + transform: scale(1.05); +} + +/* ========================================== */ + +/* עיצוב לכרטיס הבדיחה (ברשימה הראשית) */ +.card { + background-color: #242424; + border: 1px solid #333333; + border-radius: 8px; + padding: 20px; + margin: 15px; + cursor: pointer; + box-shadow: 0 2px 8px rgba(0, 0, 0, 0.15); + transition: transform 0.2s ease, box-shadow 0.2s ease; + text-align: right; /* התאמה לעברית */ +} + +/* אפקט ריחוף מעל הכרטיס */ +.card:hover { + transform: translateY(-5px); + box-shadow: 0 6px 16px rgba(0, 0, 0, 0.25); + border-color: #4caf50; /* הדגשת המסגרת בריחוף */ +} + +/* עיצוב הכותרת בתוך הכרטיס */ +.title { + font-size: 1.25rem; + color: #ffffff; + margin: 0 0 10px 0; +} + +/* עיצוב שם התלמיד בתחתית הכרטיס */ +.name { + font-size: 0.9rem; + color: #888888; + margin: 0; +} \ No newline at end of file From 556646d6a22ddb71d2a46b2b128cb9bcec8c6440 Mon Sep 17 00:00:00 2001 From: ayala oshri Date: Tue, 26 May 2026 12:38:39 +0300 Subject: [PATCH 03/12] add programmer shower joke with cute style --- package.json | 1 + src/students/ayala oshri/Card.tsx | 24 ++ src/students/ayala oshri/JokePage.tsx | 59 +++ src/students/ayala oshri/styles.module.css | 411 +++++++++++++++++++++ src/students/index.ts | 10 + 5 files changed, 505 insertions(+) create mode 100644 src/students/ayala oshri/Card.tsx create mode 100644 src/students/ayala oshri/JokePage.tsx create mode 100644 src/students/ayala oshri/styles.module.css diff --git a/package.json b/package.json index 0545857..0ec39f1 100644 --- a/package.json +++ b/package.json @@ -5,6 +5,7 @@ "type": "module", "scripts": { "dev": "gen-branches && vite", + "dev": "node scripts/gen-branches.cjs && vite", "build": "tsc -b && vite build", "lint": "eslint .", "preview": "vite preview", diff --git a/src/students/ayala oshri/Card.tsx b/src/students/ayala oshri/Card.tsx new file mode 100644 index 0000000..620fe63 --- /dev/null +++ b/src/students/ayala oshri/Card.tsx @@ -0,0 +1,24 @@ +import styles from "./styles.module.css"; +import { CardProps } from "../../types"; + +export default function MyCard({ student, onClick }: CardProps) { + return ( +
+ {/* Decorative bubbles */} + + + + + + {/* Duck icon */} +
🛁
+ +

{student.jokeTitle}

+

{student.name}

+ +
+ לחץ לצחוק 🫧 +
+
+ ); +} \ No newline at end of file diff --git a/src/students/ayala oshri/JokePage.tsx b/src/students/ayala oshri/JokePage.tsx new file mode 100644 index 0000000..79428d8 --- /dev/null +++ b/src/students/ayala oshri/JokePage.tsx @@ -0,0 +1,59 @@ +import styles from "./styles.module.css"; +import { PageProps } from "../../types"; + +export default function MyJokePage({ onBack }: PageProps) { + return ( +
+ {/* Animated bubbles background */} +
+ {[...Array(12)].map((_, i) => ( + + ))} +
+ + {/* Decorative top row */} +
+ 🐥 + 🛁 + 🫧 + 🚿 + 🐥 +
+ + {/* Joke card */} +
+
+ ? +

הבדיחה

+
+ +
+

למה למתכנתים לוקח הרבה זמן להתקלח?

+
+ +
+ 🫧 +
+ 🫧 +
+ +
+

+ כי על השמפו כתוב:
+ לחפוף, לשטוף, ולחזור על הפעולה. +

+
+
+ + +
+ ); +} diff --git a/src/students/ayala oshri/styles.module.css b/src/students/ayala oshri/styles.module.css new file mode 100644 index 0000000..ae96202 --- /dev/null +++ b/src/students/ayala oshri/styles.module.css @@ -0,0 +1,411 @@ +/* ================================================ + 🛁 BATH TIME KITSCH THEME + Bright, bubbly, playful – because code needs baths too + ================================================ */ + +@import url('https://fonts.googleapis.com/css2?family=Fredoka+One&family=Varela+Round&display=swap'); + +/* ── CSS Variables ─────────────────────────── */ +:root { + --bath-blue: #b3e5fc; + --bath-teal: #4dd0e1; + --bath-sky: #e1f5fe; + --foam-white: #ffffff; + --duck-yellow: #fff176; + --duck-orange: #ffb300; + --bubble-pink: #f8bbd0; + --bubble-lavender: #e1bee7; + --soft-mint: #c8e6c9; + --text-deep: #1a3a4a; + --text-mid: #2d6a8a; + --shadow-blue: rgba(77, 208, 225, 0.35); + --radius-card: 28px; + --radius-pill: 50px; +} + +/* ── CARD ──────────────────────────────────── */ +.card { + position: relative; + overflow: hidden; + direction: rtl; + font-family: 'Fredoka One', 'Varela Round', sans-serif; + + /* Bath-tile checkerboard feel via gradient mesh */ + background: + radial-gradient(ellipse at 20% 20%, #e0f7fa 0%, transparent 55%), + radial-gradient(ellipse at 80% 80%, #fce4ec 0%, transparent 55%), + radial-gradient(ellipse at 80% 20%, #f3e5f5 0%, transparent 50%), + radial-gradient(ellipse at 20% 80%, #e8f5e9 0%, transparent 50%), + #dff6fd; + + border: 3px solid var(--bath-teal); + border-radius: var(--radius-card); + padding: 32px 28px 24px; + min-width: 240px; + max-width: 320px; + cursor: pointer; + box-shadow: + 0 8px 32px var(--shadow-blue), + 0 2px 8px rgba(0,0,0,0.08), + inset 0 1px 0 rgba(255,255,255,0.9); + + transition: transform 0.22s cubic-bezier(.34,1.56,.64,1), + box-shadow 0.22s ease; +} + +/* Wet-glass shimmer overlay */ +.card::before { + content: ''; + position: absolute; + inset: 0; + background: linear-gradient( + 135deg, + rgba(255,255,255,0.55) 0%, + rgba(255,255,255,0.05) 50%, + rgba(180,230,250,0.15) 100% + ); + pointer-events: none; + border-radius: var(--radius-card); +} + +/* Wavy bottom border */ +.card::after { + content: ''; + position: absolute; + bottom: 0; left: 0; right: 0; + height: 48px; + background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 400 48'%3E%3Cpath d='M0 24 Q50 0 100 24 T200 24 T300 24 T400 24 V48 H0Z' fill='%234dd0e1' opacity='0.18'/%3E%3C/svg%3E") repeat-x bottom; + pointer-events: none; +} + +.card:hover { + transform: translateY(-6px) scale(1.02); + box-shadow: + 0 18px 48px var(--shadow-blue), + 0 4px 12px rgba(0,0,0,0.1), + inset 0 1px 0 rgba(255,255,255,0.9); +} + +.card:active { + transform: translateY(-2px) scale(0.99); +} + +/* ── Duck icon ─────────────────────────────── */ +.duckIcon { + font-size: 2.6rem; + text-align: center; + margin-bottom: 10px; + filter: drop-shadow(0 3px 6px rgba(0,0,0,0.12)); + animation: wobble 2.8s ease-in-out infinite; +} + +@keyframes wobble { + 0%, 100% { transform: rotate(-5deg) scale(1); } + 50% { transform: rotate(5deg) scale(1.07); } +} + +/* ── Card Title ────────────────────────────── */ +.title { + font-family: 'Fredoka One', sans-serif; + font-size: 1.4rem; + color: var(--text-deep); + text-align: center; + margin: 0 0 10px; + line-height: 1.3; + text-shadow: 0 2px 0 rgba(255,255,255,0.8); + letter-spacing: 0.02em; +} + +/* ── Student Name ──────────────────────────── */ +.name { + font-family: 'Varela Round', sans-serif; + font-size: 0.95rem; + color: var(--text-mid); + text-align: center; + margin: 0; + background: rgba(255,255,255,0.65); + padding: 4px 16px; + border-radius: var(--radius-pill); + display: inline-block; + width: 100%; + box-sizing: border-box; + backdrop-filter: blur(4px); +} + +/* ── Card footer ───────────────────────────── */ +.cardFooter { + margin-top: 16px; + text-align: center; +} + +.clickHint { + font-family: 'Varela Round', sans-serif; + font-size: 0.8rem; + color: var(--bath-teal); + background: rgba(255,255,255,0.7); + padding: 3px 14px; + border-radius: var(--radius-pill); + border: 1.5px dashed var(--bath-teal); + animation: pulse 2s ease-in-out infinite; +} + +@keyframes pulse { + 0%, 100% { opacity: 1; } + 50% { opacity: 0.55; } +} + +/* ── Bubble decorations on card ────────────── */ +.bubble { + position: absolute; + border-radius: 50%; + background: radial-gradient(circle at 35% 35%, rgba(255,255,255,0.85), rgba(180,235,255,0.3)); + border: 1.5px solid rgba(100,210,240,0.5); + pointer-events: none; + animation: floatBubble 3.5s ease-in-out infinite alternate; +} + +@keyframes floatBubble { + 0% { transform: translateY(0) scale(1); opacity: 0.7; } + 100% { transform: translateY(-6px) scale(1.1); opacity: 1; } +} + + +/* ════════════════════════════════════════════ + 🛁 JOKE PAGE + ════════════════════════════════════════════ */ + +.jokePage { + position: relative; + direction: rtl; + font-family: 'Fredoka One', 'Varela Round', sans-serif; + min-height: 100vh; + display: flex; + flex-direction: column; + align-items: center; + justify-content: center; + padding: 32px 20px; + overflow: hidden; + + /* Sky-blue + foam gradient background */ + background: + radial-gradient(ellipse at 15% 15%, #fff9c4 0%, transparent 40%), + radial-gradient(ellipse at 85% 85%, #f8bbd0 0%, transparent 40%), + radial-gradient(ellipse at 85% 15%, #b3e5fc 0%, transparent 45%), + radial-gradient(ellipse at 15% 85%, #c8e6c9 0%, transparent 45%), + linear-gradient(160deg, #e1f5fe 0%, #fce4ec 50%, #e8f5e9 100%); +} + +/* ── Floating animated bubbles bg ─────────── */ +.bubblesContainer { + position: absolute; + inset: 0; + pointer-events: none; + overflow: hidden; +} + +.floatingBubble { + position: absolute; + bottom: -40px; + border-radius: 50%; + background: radial-gradient(circle at 35% 30%, rgba(255,255,255,0.9), rgba(180,235,255,0.25)); + border: 1.5px solid rgba(120,210,240,0.45); + animation: rise linear infinite; +} + +@keyframes rise { + 0% { transform: translateY(0) scale(0.8); opacity: 0; } + 10% { opacity: 0.7; } + 90% { opacity: 0.5; } + 100% { transform: translateY(-110vh) scale(1.15); opacity: 0; } +} + +/* ── Top decorative emoji row ──────────────── */ +.topDecor { + display: flex; + gap: 18px; + font-size: 1.8rem; + margin-bottom: 28px; + position: relative; + z-index: 2; + filter: drop-shadow(0 2px 4px rgba(0,0,0,0.12)); +} + +.topDecor span { + animation: bounce 1.8s ease-in-out infinite; +} +.topDecor span:nth-child(2) { animation-delay: 0.2s; } +.topDecor span:nth-child(3) { animation-delay: 0.4s; } +.topDecor span:nth-child(4) { animation-delay: 0.6s; } +.topDecor span:nth-child(5) { animation-delay: 0.8s; } + +@keyframes bounce { + 0%, 100% { transform: translateY(0); } + 50% { transform: translateY(-8px); } +} + +/* ── Main Joke Card ────────────────────────── */ +.jokeCard { + position: relative; + z-index: 2; + background: + radial-gradient(ellipse at 10% 10%, rgba(255,255,255,0.9) 0%, transparent 60%), + rgba(255,255,255,0.75); + backdrop-filter: blur(12px); + -webkit-backdrop-filter: blur(12px); + border: 3px solid var(--bath-teal); + border-radius: 36px; + padding: 36px 40px; + max-width: 480px; + width: 100%; + box-shadow: + 0 16px 48px rgba(77,208,225,0.28), + 0 4px 16px rgba(0,0,0,0.08), + inset 0 2px 0 rgba(255,255,255,0.95); + + /* Entrance animation */ + animation: slideUp 0.55s cubic-bezier(.34,1.56,.64,1) both; +} + +@keyframes slideUp { + from { opacity: 0; transform: translateY(40px) scale(0.95); } + to { opacity: 1; transform: translateY(0) scale(1); } +} + +/* Wavy top ribbon */ +.jokeCard::before { + content: ''; + position: absolute; + top: 0; left: 0; right: 0; + height: 54px; + background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 480 54'%3E%3Cpath d='M0 32 Q60 8 120 32 T240 32 T360 32 T480 32 V0 H0Z' fill='%234dd0e1' opacity='0.22'/%3E%3C/svg%3E") no-repeat top; + border-radius: 36px 36px 0 0; + pointer-events: none; +} + +/* ── Joke header ───────────────────────────── */ +.jokeHeader { + display: flex; + align-items: center; + justify-content: center; + gap: 10px; + margin-bottom: 20px; +} + +.questionMark { + width: 38px; + height: 38px; + background: linear-gradient(135deg, var(--duck-yellow), var(--duck-orange)); + border-radius: 50%; + display: flex; + align-items: center; + justify-content: center; + font-size: 1.3rem; + font-weight: bold; + color: #5d4000; + box-shadow: 0 3px 10px rgba(255,179,0,0.35); + line-height: 38px; + text-align: center; +} + +.jokeLabel { + font-family: 'Fredoka One', sans-serif; + font-size: 1.2rem; + color: var(--text-mid); + margin: 0; + letter-spacing: 0.04em; +} + +/* ── Question block ────────────────────────── */ +.questionBlock { + background: linear-gradient(135deg, #e3f7ff, #f0fbff); + border-radius: 20px; + padding: 20px 24px; + border: 2px solid rgba(77,208,225,0.4); + margin-bottom: 18px; +} + +.jokeQuestion { + font-family: 'Fredoka One', sans-serif; + font-size: 1.25rem; + color: var(--text-deep); + text-align: center; + margin: 0; + line-height: 1.55; + text-shadow: 0 1px 0 rgba(255,255,255,0.8); +} + +/* ── Divider ───────────────────────────────── */ +.dividerRow { + display: flex; + align-items: center; + gap: 10px; + margin: 6px 0 18px; +} + +.dividerLine { + flex: 1; + height: 2px; + background: linear-gradient(90deg, transparent, var(--bath-teal), transparent); + border-radius: 2px; +} + +.dividerEmoji { + font-size: 1.1rem; +} + +/* ── Answer block ──────────────────────────── */ +.answerBlock { + background: linear-gradient(135deg, #fff8e1, #fffde7); + border-radius: 20px; + padding: 20px 24px; + border: 2px solid rgba(255,202,40,0.45); +} + +.jokeAnswer { + font-family: 'Varela Round', sans-serif; + font-size: 1.1rem; + color: var(--text-deep); + text-align: center; + margin: 0; + line-height: 1.7; +} + +.jokeAnswer strong { + font-family: 'Fredoka One', sans-serif; + font-size: 1.15rem; + color: #b45309; + display: block; + margin-top: 6px; +} + +/* ── Back button ───────────────────────────── */ +.backButton { + position: relative; + z-index: 2; + margin-top: 28px; + padding: 12px 36px; + font-family: 'Fredoka One', sans-serif; + font-size: 1.05rem; + color: var(--foam-white); + background: linear-gradient(135deg, var(--bath-teal) 0%, #26c6da 100%); + border: none; + border-radius: var(--radius-pill); + cursor: pointer; + box-shadow: + 0 6px 20px rgba(77,208,225,0.45), + 0 2px 6px rgba(0,0,0,0.1); + letter-spacing: 0.04em; + transition: transform 0.18s cubic-bezier(.34,1.56,.64,1), + box-shadow 0.18s ease; +} + +.backButton:hover { + transform: translateY(-3px) scale(1.04); + box-shadow: + 0 12px 28px rgba(77,208,225,0.5), + 0 4px 10px rgba(0,0,0,0.1); +} + +.backButton:active { + transform: scale(0.97); +} diff --git a/src/students/index.ts b/src/students/index.ts index 5be78e7..0038662 100644 --- a/src/students/index.ts +++ b/src/students/index.ts @@ -6,6 +6,9 @@ import DanaDuviJokePage from "./dana-duvi/JokePage"; import ChaniChanzinCard from "./chani-chanzin/Card"; import ChaniChanzinJokePage from "./chani-chanzin/JokePage"; +import AyalaOshriCard from "./ayala oshri/Card"; +import AyalaOshriJokePage from "./ayala oshri/JokePage"; + // ⚠️ סדר הרשימה חייב להיות לפי סדר האלף-בית העברי לפי שם המשפחה. // כל תלמידה מוסיפה את עצמה במקום הנכון ידנית. // אסור להשתמש בפונקציית-sort! @@ -24,6 +27,13 @@ const students: Student[] = [ CardComponent: ChaniChanzinCard, JokePageComponent: ChaniChanzinJokePage, }, + { + id: "ayala-oshri", + name: "אילה עושרי", + jokeTitle: "לולאה אינסופית", + CardComponent: AyalaOshriCard, + JokePageComponent: AyalaOshriJokePage, + } ]; export default students; From 7dd3d8512815d775b5672302cd85845928f62b84 Mon Sep 17 00:00:00 2001 From: toar lev Date: Tue, 26 May 2026 12:40:39 +0300 Subject: [PATCH 04/12] fix: update npm dev script --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index 0545857..1d6743f 100644 --- a/package.json +++ b/package.json @@ -4,7 +4,7 @@ "version": "0.0.0", "type": "module", "scripts": { - "dev": "gen-branches && vite", + "dev": "node scripts/gen-branches.cjs && vite", "build": "tsc -b && vite build", "lint": "eslint .", "preview": "vite preview", From 584dd73d008d85974601bd26952a731987f57760 Mon Sep 17 00:00:00 2001 From: brc10 Date: Tue, 26 May 2026 12:57:33 +0300 Subject: [PATCH 05/12] add brachas joke --- src/students/bracha-pappenheim/Card.tsx | 11 +++ src/students/bracha-pappenheim/JokePage.tsx | 13 +++ .../bracha-pappenheim/styles.module.css | 95 +++++++++++++++++++ src/students/index.ts | 10 ++ 4 files changed, 129 insertions(+) create mode 100644 src/students/bracha-pappenheim/Card.tsx create mode 100644 src/students/bracha-pappenheim/JokePage.tsx create mode 100644 src/students/bracha-pappenheim/styles.module.css diff --git a/src/students/bracha-pappenheim/Card.tsx b/src/students/bracha-pappenheim/Card.tsx new file mode 100644 index 0000000..ebf5191 --- /dev/null +++ b/src/students/bracha-pappenheim/Card.tsx @@ -0,0 +1,11 @@ +import styles from "./styles.module.css"; +import { CardProps } from "../../types"; + +export default function BrachaCard({ student, onClick }: CardProps) { + return ( +
+

{student.jokeTitle}

+

{student.name}

+
+ ); +} \ No newline at end of file diff --git a/src/students/bracha-pappenheim/JokePage.tsx b/src/students/bracha-pappenheim/JokePage.tsx new file mode 100644 index 0000000..a1a523a --- /dev/null +++ b/src/students/bracha-pappenheim/JokePage.tsx @@ -0,0 +1,13 @@ +import styles from "./styles.module.css"; +import { PageProps } from "../../types"; + +export default function brachaJokePage({ onBack }: PageProps) { + return ( +
+

בדיחה מאד מצחיקה למתכנת סטלן

+

מה קורה כשמתכנת סטלן מנסה לדאבג (Debug) קוד? + הוא מוצא באג, בוהה בו עשר דקות, ואז אומר: "וואו אחי... בעצם, מי אמר שזו טעות? אולי זה פשוט ה-Feature של היקום..."

+ +
+ ); +} \ No newline at end of file diff --git a/src/students/bracha-pappenheim/styles.module.css b/src/students/bracha-pappenheim/styles.module.css new file mode 100644 index 0000000..d85c3a8 --- /dev/null +++ b/src/students/bracha-pappenheim/styles.module.css @@ -0,0 +1,95 @@ +/* סגנון כללי לדף הבדיחה */ +.jokePage { + display: flex; + flex-direction: column; + align-items: center; + justify-content: center; + min-height: 200px; + padding: 2rem; + background-color: #1e1e24; + color: #f4f4f6; + border-radius: 16px; + box-shadow: 0 8px 32px rgba(0, 0, 0, 0.25); + max-width: 600px; + margin: 2rem auto; + text-align: center; + font-family: system-ui, -apple-system, sans-serif; + border: 1px solid #3a3a45; +} + +/* כותרת או טקסט מודגש בתוך הדף */ +.jokePage p:first-of-type { + font-size: 1.4rem; + font-weight: 700; + color: #4ade80; + margin-bottom: 1.5rem; +} + +/* תוכן הבדיחה עצמה */ +.jokePage p:last-of-type { + font-size: 1.15rem; + line-height: 1.6; + color: #e2e8f0; + margin-bottom: 2rem; + background: #2d2d38; + padding: 1.5rem; + border-radius: 12px; + border-right: 4px solid #4ade80; /* הדגשה בצד ימין בגלל העברית */ +} + +/* כפתור חזרה */ +.jokePage button { + background-color: transparent; + color: #a78bfa; /* סגול בהיר */ + border: 2px solid #a78bfa; + padding: 0.6rem 1.5rem; + font-size: 1rem; + font-weight: 600; + border-radius: 8px; + cursor: pointer; + transition: all 0.3s ease; +} + +.jokePage button:hover { + background-color: #a78bfa; + color: #1e1e24; + box-shadow: 0 0 15px rgba(167, 139, 250, 0.4); + transform: translateY(-2px); +} + +/* --- עיצוב לכרטיס הבדיחה (BrachaCard) --- */ + +.card { + background: #25252f; + border: 1px solid #3f3f46; + border-radius: 12px; + padding: 1.5rem; + margin: 1rem auto; + max-width: 400px; + cursor: pointer; + transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1); + box-shadow: 0 4px 6px rgba(0, 0, 0, 0.1); +} + +/* אפקט ריחוף על הכרטיס */ +.card:hover { + transform: translateY(-4px); + border-color: #60a5fa; /* כחול מודרני בטעינה */ + box-shadow: 0 10px 20px rgba(0, 0, 0, 0.3), 0 0 8px rgba(96, 165, 250, 0.2); +} + +/* כותרת הבדיחה בכרטיס */ +.title { + margin: 0 0 0.75rem 0; + font-size: 1.25rem; + color: #f3f4f6; + font-weight: 600; +} + +/* שם הסטודנט */ +.name { + margin: 0; + font-size: 0.95rem; + color: #9ca3af; + font-style: italic; +} \ No newline at end of file diff --git a/src/students/index.ts b/src/students/index.ts index 5be78e7..aa1ddff 100644 --- a/src/students/index.ts +++ b/src/students/index.ts @@ -5,11 +5,20 @@ import DanaDuviJokePage from "./dana-duvi/JokePage"; import ChaniChanzinCard from "./chani-chanzin/Card"; import ChaniChanzinJokePage from "./chani-chanzin/JokePage"; +import brachaJokePage from "./bracha-pappenheim/JokePage"; +import BrachaCard from "./bracha-pappenheim/Card"; // ⚠️ סדר הרשימה חייב להיות לפי סדר האלף-בית העברי לפי שם המשפחה. // כל תלמידה מוסיפה את עצמה במקום הנכון ידנית. // אסור להשתמש בפונקציית-sort! const students: Student[] = [ + { + id: "[bracha pappenheim]", + name: "[ברכה פפנהיים", + jokeTitle: "[שלום וברכה!", + CardComponent: BrachaCard, + JokePageComponent: brachaJokePage, + }, { id: "dana-duvi", name: "דנה דובי", @@ -24,6 +33,7 @@ const students: Student[] = [ CardComponent: ChaniChanzinCard, JokePageComponent: ChaniChanzinJokePage, }, + ]; export default students; From 1c878cbe32ee6b915c838ce996fc88d278b92a10 Mon Sep 17 00:00:00 2001 From: brc10 Date: Tue, 26 May 2026 14:06:44 +0300 Subject: [PATCH 06/12] add chandes bracha --- package.json | 4 +- src/generated/branches.ts | 674 +++++++++++++++++++++++++++++++++----- src/index.css | 2 +- 3 files changed, 588 insertions(+), 92 deletions(-) diff --git a/package.json b/package.json index 0545857..a723323 100644 --- a/package.json +++ b/package.json @@ -4,7 +4,7 @@ "version": "0.0.0", "type": "module", "scripts": { - "dev": "gen-branches && vite", + "dev": "node scripts/gen-branches.cjs && vite", "build": "tsc -b && vite build", "lint": "eslint .", "preview": "vite preview", @@ -28,4 +28,4 @@ "typescript-eslint": "^8.11.0", "vite": "^5.4.10" } -} +} \ No newline at end of file diff --git a/src/generated/branches.ts b/src/generated/branches.ts index 7a56c3b..5291025 100644 --- a/src/generated/branches.ts +++ b/src/generated/branches.ts @@ -2,170 +2,666 @@ import type { BranchData } from "../types"; const data: BranchData = { - "generatedAt": "2026-04-26T22:06:42.722Z", - "currentBranch": "", + "generatedAt": "2026-05-26T10:48:12.721Z", + "currentBranch": "stars-green-johnny-update-team1-bracha", "mainBranch": "master", "branches": [ + { + "name": "ChavivaSeiff", + "parentBranch": null, + "shortHash": "", + "lastCommitMessage": "", + "isMergedIntoParent": false, + "isCurrent": false + }, + { + "name": "Eti-NewJoke", + "parentBranch": null, + "shortHash": "", + "lastCommitMessage": "", + "isMergedIntoParent": false, + "isCurrent": false + }, + { + "name": "Eti-Orenbach", + "parentBranch": null, + "shortHash": "", + "lastCommitMessage": "", + "isMergedIntoParent": false, + "isCurrent": false + }, + { + "name": "Hilla_Arye", + "parentBranch": null, + "shortHash": "", + "lastCommitMessage": "", + "isMergedIntoParent": false, + "isCurrent": false + }, + { + "name": "Hilla_Arye_2", + "parentBranch": null, + "shortHash": "", + "lastCommitMessage": "", + "isMergedIntoParent": false, + "isCurrent": false + }, + { + "name": "Maayan-Bukrits", + "parentBranch": null, + "shortHash": "", + "lastCommitMessage": "", + "isMergedIntoParent": false, + "isCurrent": false + }, + { + "name": "MaayanBaba", + "parentBranch": null, + "shortHash": "", + "lastCommitMessage": "", + "isMergedIntoParent": false, + "isCurrent": false + }, + { + "name": "RivkaBarashi", + "parentBranch": null, + "shortHash": "", + "lastCommitMessage": "", + "isMergedIntoParent": false, + "isCurrent": false + }, + { + "name": "Shira-Shemesh", + "parentBranch": null, + "shortHash": "", + "lastCommitMessage": "", + "isMergedIntoParent": false, + "isCurrent": false + }, + { + "name": "ShiraShemesh2", + "parentBranch": null, + "shortHash": "", + "lastCommitMessage": "", + "isMergedIntoParent": false, + "isCurrent": false + }, + { + "name": "Vcomm", + "parentBranch": null, + "shortHash": "", + "lastCommitMessage": "", + "isMergedIntoParent": false, + "isCurrent": false + }, + { + "name": "Vcomm_1", + "parentBranch": null, + "shortHash": "", + "lastCommitMessage": "", + "isMergedIntoParent": false, + "isCurrent": false + }, + { + "name": "Vcomm_2", + "parentBranch": null, + "shortHash": "", + "lastCommitMessage": "", + "isMergedIntoParent": false, + "isCurrent": false + }, + { + "name": "Vcomm_3", + "parentBranch": null, + "shortHash": "", + "lastCommitMessage": "", + "isMergedIntoParent": false, + "isCurrent": false + }, + { + "name": "Vcomm_3_noaNew", + "parentBranch": null, + "shortHash": "", + "lastCommitMessage": "", + "isMergedIntoParent": false, + "isCurrent": false + }, + { + "name": "ayala-joke2", + "parentBranch": null, + "shortHash": "", + "lastCommitMessage": "", + "isMergedIntoParent": false, + "isCurrent": false + }, + { + "name": "ayala-oshri-stars-green-johnny-update-team1", + "parentBranch": null, + "shortHash": "", + "lastCommitMessage": "", + "isMergedIntoParent": false, + "isCurrent": false + }, + { + "name": "hadar-gerafi", + "parentBranch": null, + "shortHash": "", + "lastCommitMessage": "", + "isMergedIntoParent": false, + "isCurrent": false + }, + { + "name": "hadas-karasenti", + "parentBranch": null, + "shortHash": "", + "lastCommitMessage": "", + "isMergedIntoParent": false, + "isCurrent": false + }, + { + "name": "johnny-update-3", + "parentBranch": null, + "shortHash": "", + "lastCommitMessage": "", + "isMergedIntoParent": false, + "isCurrent": false + }, + { + "name": "johnny-update-team3-Eti_Munk", + "parentBranch": null, + "shortHash": "", + "lastCommitMessage": "", + "isMergedIntoParent": false, + "isCurrent": false + }, + { + "name": "kiter-2-RachelWeinberger", + "parentBranch": null, + "shortHash": "", + "lastCommitMessage": "", + "isMergedIntoParent": false, + "isCurrent": false + }, + { + "name": "kitera", + "parentBranch": null, + "shortHash": "", + "lastCommitMessage": "", + "isMergedIntoParent": false, + "isCurrent": false + }, + { + "name": "kiteria-1", + "parentBranch": null, + "shortHash": "", + "lastCommitMessage": "", + "isMergedIntoParent": false, + "isCurrent": false + }, + { + "name": "kiteria-1-chedvaf", + "parentBranch": null, + "shortHash": "", + "lastCommitMessage": "", + "isMergedIntoParent": false, + "isCurrent": false + }, + { + "name": "kiteria-1-efrat", + "parentBranch": null, + "shortHash": "", + "lastCommitMessage": "", + "isMergedIntoParent": false, + "isCurrent": false + }, + { + "name": "kiteria-2", + "parentBranch": null, + "shortHash": "", + "lastCommitMessage": "", + "isMergedIntoParent": false, + "isCurrent": false + }, + { + "name": "kiteria-2-yehudit", + "parentBranch": null, + "shortHash": "", + "lastCommitMessage": "", + "isMergedIntoParent": false, + "isCurrent": false + }, + { + "name": "kiteria-3", + "parentBranch": null, + "shortHash": "", + "lastCommitMessage": "", + "isMergedIntoParent": false, + "isCurrent": false + }, + { + "name": "kiteria-3-Ayelet", + "parentBranch": null, + "shortHash": "", + "lastCommitMessage": "", + "isMergedIntoParent": false, + "isCurrent": false + }, + { + "name": "kiteria-3-ester", + "parentBranch": null, + "shortHash": "", + "lastCommitMessage": "", + "isMergedIntoParent": false, + "isCurrent": false + }, + { + "name": "kiteria-3_RachelPanet", + "parentBranch": null, + "shortHash": "", + "lastCommitMessage": "", + "isMergedIntoParent": false, + "isCurrent": false + }, + { + "name": "kiteria_chedva", + "parentBranch": null, + "shortHash": "", + "lastCommitMessage": "", + "isMergedIntoParent": false, + "isCurrent": false + }, + { + "name": "maayan-vecomm-1-vecomm", + "parentBranch": null, + "shortHash": "", + "lastCommitMessage": "", + "isMergedIntoParent": false, + "isCurrent": false + }, + { + "name": "maayan2", + "parentBranch": null, + "shortHash": "", + "lastCommitMessage": "", + "isMergedIntoParent": false, + "isCurrent": false + }, { "name": "master", "parentBranch": null, + "shortHash": "0c10217", + "lastCommitMessage": "fix: instructions branch names", + "isMergedIntoParent": false, + "isCurrent": false + }, + { + "name": "mayanSJoke", + "parentBranch": null, "shortHash": "", "lastCommitMessage": "", "isMergedIntoParent": false, "isCurrent": false }, { - "name": "diamond", - "parentBranch": "master", - "shortHash": "234", - "lastCommitMessage": "diamond", + "name": "noa_gabay", + "parentBranch": null, + "shortHash": "", + "lastCommitMessage": "", + "isMergedIntoParent": false, + "isCurrent": false + }, + { + "name": "shani", + "parentBranch": null, + "shortHash": "", + "lastCommitMessage": "", + "isMergedIntoParent": false, + "isCurrent": false + }, + { + "name": "shani2", + "parentBranch": null, + "shortHash": "", + "lastCommitMessage": "", + "isMergedIntoParent": false, + "isCurrent": false + }, + { + "name": "shiraGidi", + "parentBranch": null, + "shortHash": "", + "lastCommitMessage": "", + "isMergedIntoParent": false, + "isCurrent": false + }, + { + "name": "sola", + "parentBranch": null, + "shortHash": "", + "lastCommitMessage": "", "isMergedIntoParent": false, "isCurrent": false }, { - "name": "red", - "parentBranch": "diamond", - "shortHash": "23444", - "lastCommitMessage": "moshe", + "name": "sola3", + "parentBranch": null, + "shortHash": "", + "lastCommitMessage": "", "isMergedIntoParent": false, "isCurrent": false }, { - "name": "miri", - "parentBranch": "red", - "shortHash": "23444", - "lastCommitMessage": "miri", + "name": "sola4", + "parentBranch": null, + "shortHash": "", + "lastCommitMessage": "", "isMergedIntoParent": false, "isCurrent": false }, { - "name": "roch", - "parentBranch": "red", - "shortHash": "23444", - "lastCommitMessage": "roch ", + "name": "sola_sola1", + "parentBranch": null, + "shortHash": "", + "lastCommitMessage": "", "isMergedIntoParent": false, "isCurrent": false }, { - "name": "roch", - "parentBranch": "red", - "shortHash": "23444", - "lastCommitMessage": "roch ", + "name": "sola_sola1_carmi", + "parentBranch": null, + "shortHash": "", + "lastCommitMessage": "", "isMergedIntoParent": false, "isCurrent": false }, { - "name": "avi nos", - "parentBranch": "red", - "shortHash": "23444", - "lastCommitMessage": "roch ", - "isMergedIntoParent": true, + "name": "sola_sola1_malka", + "parentBranch": null, + "shortHash": "", + "lastCommitMessage": "", + "isMergedIntoParent": false, "isCurrent": false }, { - "name": "shia cjss s", - "parentBranch": "red", - "shortHash": "23444", - "lastCommitMessage": "roch ", + "name": "sola_sola1_ruti", + "parentBranch": null, + "shortHash": "", + "lastCommitMessage": "", "isMergedIntoParent": false, "isCurrent": false }, { - "name": "blue", - "parentBranch": "diamond", - "shortHash": "23444", - "lastCommitMessage": "moshe", + "name": "sola_sola1_sari", + "parentBranch": null, + "shortHash": "", + "lastCommitMessage": "", "isMergedIntoParent": false, "isCurrent": false }, { - "name": "red", - "parentBranch": "diamond", - "shortHash": "23444", - "lastCommitMessage": "moshe", + "name": "sola_sola1_shifraZ", + "parentBranch": null, + "shortHash": "", + "lastCommitMessage": "", "isMergedIntoParent": false, - "isCurrent": true + "isCurrent": false + }, + { + "name": "sola_sola2", + "parentBranch": null, + "shortHash": "", + "lastCommitMessage": "", + "isMergedIntoParent": false, + "isCurrent": false + }, + { + "name": "sola_sola2-Tamar", + "parentBranch": null, + "shortHash": "", + "lastCommitMessage": "", + "isMergedIntoParent": false, + "isCurrent": false + }, + { + "name": "sola_sola2_gili", + "parentBranch": null, + "shortHash": "", + "lastCommitMessage": "", + "isMergedIntoParent": false, + "isCurrent": false + }, + { + "name": "sola_sola2_hadas", + "parentBranch": null, + "shortHash": "", + "lastCommitMessage": "", + "isMergedIntoParent": false, + "isCurrent": false + }, + { + "name": "sola_sola2_tamarD", + "parentBranch": null, + "shortHash": "", + "lastCommitMessage": "", + "isMergedIntoParent": false, + "isCurrent": false + }, + { + "name": "sola_sola2_yehudit", + "parentBranch": null, + "shortHash": "", + "lastCommitMessage": "", + "isMergedIntoParent": false, + "isCurrent": false + }, + { + "name": "sola_sola3_Efrat_Madmon", + "parentBranch": null, + "shortHash": "", + "lastCommitMessage": "", + "isMergedIntoParent": false, + "isCurrent": false + }, + { + "name": "sola_sola3_saralevin", + "parentBranch": null, + "shortHash": "", + "lastCommitMessage": "", + "isMergedIntoParent": false, + "isCurrent": false + }, + { + "name": "sola_sola3_yaeli", + "parentBranch": null, + "shortHash": "", + "lastCommitMessage": "", + "isMergedIntoParent": false, + "isCurrent": false }, { - "name": "star", + "name": "stars", + "parentBranch": null, + "shortHash": "", + "lastCommitMessage": "", + "isMergedIntoParent": false, + "isCurrent": false + }, + { + "name": "stars-green", + "parentBranch": null, + "shortHash": "", + "lastCommitMessage": "", + "isMergedIntoParent": false, + "isCurrent": false + }, + { + "name": "stars-green-bat-sheva-bloch", + "parentBranch": null, + "shortHash": "", + "lastCommitMessage": "", + "isMergedIntoParent": false, + "isCurrent": false + }, + { + "name": "stars-green-johnny-update-team1", + "parentBranch": null, + "shortHash": "0c10217", + "lastCommitMessage": "fix: instructions branch names", + "isMergedIntoParent": false, + "isCurrent": false + }, + { + "name": "stars-green-johnny-update-team1-Tamar", + "parentBranch": null, + "shortHash": "", + "lastCommitMessage": "", + "isMergedIntoParent": false, + "isCurrent": false + }, + { + "name": "stars-green-johnny-update-team1-Yael", + "parentBranch": null, + "shortHash": "", + "lastCommitMessage": "", + "isMergedIntoParent": false, + "isCurrent": false + }, + { + "name": "stars-green-johnny-update-team1-bracha", "parentBranch": "master", - "shortHash": "23454", - "lastCommitMessage": "yos", - "isMergedIntoParent": true, + "shortHash": "584dd73", + "lastCommitMessage": "add brachas joke", + "isMergedIntoParent": false, + "isCurrent": true + }, + { + "name": "stars-green-johnny-update-team2", + "parentBranch": null, + "shortHash": "0c10217", + "lastCommitMessage": "fix: instructions branch names", + "isMergedIntoParent": false, "isCurrent": false }, { - "name": "green", - "parentBranch": "star", - "shortHash": "23454", - "lastCommitMessage": "green", - "isMergedIntoParent": true, + "name": "stars-green-johnny-update-team2-LitalShamanov", + "parentBranch": null, + "shortHash": "", + "lastCommitMessage": "", + "isMergedIntoParent": false, "isCurrent": false }, { - "name": "tut", - "parentBranch": "green", - "shortHash": "23454", - "lastCommitMessage": "green", - "isMergedIntoParent": true, + "name": "stars-green-johnny-update-team3", + "parentBranch": null, + "shortHash": "", + "lastCommitMessage": "", + "isMergedIntoParent": false, "isCurrent": false }, { - "name": "brach", - "parentBranch": "green", - "shortHash": "23454", - "lastCommitMessage": "green", - "isMergedIntoParent": true, + "name": "stars-green-johnny-update-team3-Zehavi", + "parentBranch": null, + "shortHash": "", + "lastCommitMessage": "", + "isMergedIntoParent": false, "isCurrent": false }, { - "name": "yochi", - "parentBranch": "green", - "shortHash": "23454", - "lastCommitMessage": "green", - "isMergedIntoParent": true, + "name": "stars-green-jonny-update-miryam-dahari", + "parentBranch": null, + "shortHash": "", + "lastCommitMessage": "", + "isMergedIntoParent": false, "isCurrent": false }, { - "name": "sjn cjknd", - "parentBranch": "green", - "shortHash": "23454", - "lastCommitMessage": "green", - "isMergedIntoParent": true, + "name": "tamar-levi-branch", + "parentBranch": null, + "shortHash": "", + "lastCommitMessage": "", + "isMergedIntoParent": false, "isCurrent": false }, { - "name": "yellow", - "parentBranch": "star", - "shortHash": "23454", - "lastCommitMessage": "yellow fkgnlfg df", - "isMergedIntoParent": true, + "name": "team/vcomm/sub/vcomm3/noagabay", + "parentBranch": null, + "shortHash": "", + "lastCommitMessage": "", + "isMergedIntoParent": false, "isCurrent": false }, { - "name": "hjdf df", - "parentBranch": "yellow", - "shortHash": "23454", - "lastCommitMessage": "yellow fkgnlfg df", - "isMergedIntoParent": true, + "name": "tovi", + "parentBranch": null, + "shortHash": "", + "lastCommitMessage": "", + "isMergedIntoParent": false, "isCurrent": false }, { - "name": "gfkj dfkn", - "parentBranch": "yellow", - "shortHash": "23454", - "lastCommitMessage": "yellow fkgnlfg df", - "isMergedIntoParent": true, + "name": "vcomm/vcomm-1/ShiraShemesh", + "parentBranch": null, + "shortHash": "", + "lastCommitMessage": "", + "isMergedIntoParent": false, "isCurrent": false }, { - "name": "fldngk df", - "parentBranch": "yellow", - "shortHash": "23454", - "lastCommitMessage": "yellow fkgnlfg df", - "isMergedIntoParent": true, + "name": "vcomm/vcomm-1/ShiraShemesh2", + "parentBranch": null, + "shortHash": "", + "lastCommitMessage": "", + "isMergedIntoParent": false, "isCurrent": false }, + { + "name": "vcomm/vcomm-1/tova", + "parentBranch": null, + "shortHash": "", + "lastCommitMessage": "", + "isMergedIntoParent": false, + "isCurrent": false + }, + { + "name": "vcomm/vcomm-1/tovi", + "parentBranch": null, + "shortHash": "", + "lastCommitMessage": "", + "isMergedIntoParent": false, + "isCurrent": false + }, + { + "name": "vcomm/vcomm-1/tovi-joke2", + "parentBranch": null, + "shortHash": "", + "lastCommitMessage": "", + "isMergedIntoParent": false, + "isCurrent": false + }, + { + "name": "vcomm/vcomm3/ayalaKlein", + "parentBranch": null, + "shortHash": "", + "lastCommitMessage": "", + "isMergedIntoParent": false, + "isCurrent": false + }, + { + "name": "yonny", + "parentBranch": null, + "shortHash": "", + "lastCommitMessage": "", + "isMergedIntoParent": false, + "isCurrent": false + }, + { + "name": "yonny-update-saraRafalowitz", + "parentBranch": null, + "shortHash": "", + "lastCommitMessage": "", + "isMergedIntoParent": false, + "isCurrent": false + } ] }; diff --git a/src/index.css b/src/index.css index 031d4ad..272934c 100644 --- a/src/index.css +++ b/src/index.css @@ -184,7 +184,7 @@ body { display: flex; flex-direction: column; gap: 0; - margin: 1rem 0; + margin: 1rem 0; } .branch-level { From f0c8976cf324c6c6bafee75037bd5a360023002d Mon Sep 17 00:00:00 2001 From: brc10 Date: Tue, 26 May 2026 14:59:07 +0300 Subject: [PATCH 07/12] fix: resolve sync syntax error and update student list --- src/students/index.ts | 32 +++++++++++++++----------------- 1 file changed, 15 insertions(+), 17 deletions(-) diff --git a/src/students/index.ts b/src/students/index.ts index 8a21129..a8d82e2 100644 --- a/src/students/index.ts +++ b/src/students/index.ts @@ -20,13 +20,13 @@ import TamarJokePage from "./tamar-lev/JokePage"; // כל תלמידה מוסיפה את עצמה במקום הנכון ידנית. // אסור להשתמש בפונקציית-sort! const students: Student[] = [ -{ - id: "bracha-pappenheim", - name: "ברכה פפנהיים", - jokeTitle: "שלום וברכה!", - CardComponent: BrachaCard, - JokePageComponent: brachaJokePage, -}, + { + id: "bracha-pappenheim", + name: "ברכה פפנהיים", + jokeTitle: "שלום וברכה!", + CardComponent: BrachaCard, + JokePageComponent: brachaJokePage, + }, { id: "dana-duvi", name: "דנה דובי", @@ -35,12 +35,12 @@ const students: Student[] = [ JokePageComponent: DanaDuviJokePage, }, { - id: "Yael-Shoham", - name: "יעל שהם", - jokeTitle: "הילד המדבר", - CardComponent: YaelCard, - JokePageComponent: YaelJokePage, -}, + id: "Yael-Shoham", + name: "יעל שהם", + jokeTitle: "הילד המדבר", + CardComponent: YaelCard, + JokePageComponent: YaelJokePage, + }, { id: "chani-chanzin", name: "חני חנזין", @@ -48,9 +48,6 @@ const students: Student[] = [ CardComponent: ChaniChanzinCard, JokePageComponent: ChaniChanzinJokePage, }, -<<<<<<< HEAD - -======= { id: "Tamar-Lev", name: "תמר לב", @@ -58,13 +55,14 @@ const students: Student[] = [ CardComponent: TamarCard, JokePageComponent: TamarJokePage, }, + { id: "ayala-oshri", name: "אילה עושרי", jokeTitle: "לולאה אינסופית", CardComponent: AyalaOshriCard, JokePageComponent: AyalaOshriJokePage, } ->>>>>>> 7d08bf688bc08b0abf0f88124cba529e54da77b7 + ]; export default students; From c10b7cf247dda096dc5fdc732e65bdc90d812e4d Mon Sep 17 00:00:00 2001 From: brc10 Date: Tue, 26 May 2026 15:10:43 +0300 Subject: [PATCH 08/12] fix: resolve merge conflict symbols in package.json --- package.json | 3 --- src/generated/branches.ts | 6 +++--- 2 files changed, 3 insertions(+), 6 deletions(-) diff --git a/package.json b/package.json index 2986de3..3dbe3c7 100644 --- a/package.json +++ b/package.json @@ -4,10 +4,7 @@ "version": "0.0.0", "type": "module", "scripts": { -<<<<<<< HEAD -======= "dev": "gen-branches && vite", ->>>>>>> 7d08bf688bc08b0abf0f88124cba529e54da77b7 "dev": "node scripts/gen-branches.cjs && vite", "build": "tsc -b && vite build", "lint": "eslint .", diff --git a/src/generated/branches.ts b/src/generated/branches.ts index 1b4f428..2cf7652 100644 --- a/src/generated/branches.ts +++ b/src/generated/branches.ts @@ -2,7 +2,7 @@ import type { BranchData } from "../types"; const data: BranchData = { - "generatedAt": "2026-05-26T11:15:20.937Z", + "generatedAt": "2026-05-26T12:09:11.294Z", "currentBranch": "stars-green-johnny-update-team1-bracha", "mainBranch": "master", "branches": [ @@ -537,8 +537,8 @@ const data: BranchData = { { "name": "stars-green-johnny-update-team1-bracha", "parentBranch": "master", - "shortHash": "1c878cb", - "lastCommitMessage": "add chandes bracha", + "shortHash": "f0c8976", + "lastCommitMessage": "fix: resolve sync syntax error and update student list", "isMergedIntoParent": false, "isCurrent": true }, From 70ddc79ce255030c129fd6f74ca6d7ff6f1ca504 Mon Sep 17 00:00:00 2001 From: Yasho9797 Date: Tue, 26 May 2026 15:29:01 +0300 Subject: [PATCH 09/12] fix: update yael styles before pull --- src/students/yael-shoham/styles.module.css | 85 ++++++++++++++++++++++ 1 file changed, 85 insertions(+) diff --git a/src/students/yael-shoham/styles.module.css b/src/students/yael-shoham/styles.module.css index e69de29..ac05acd 100644 --- a/src/students/yael-shoham/styles.module.css +++ b/src/students/yael-shoham/styles.module.css @@ -0,0 +1,85 @@ +/* עיצוב כללי לעמוד הבדיחה */ +.jokePage { + display: flex; + flex-direction: column; + align-items: center; + justify-content: center; + min-height: 60vh; + padding: 20px; + text-align: center; + font-family: system-ui, -apple-system, sans-serif; + direction: rtl; /* תמיכה בעברית מימין לשמאל */ +} + +/* עיצוב הטקסט של הבדיחה */ +.jokePage p { + font-size: 1.25rem; + line-height: 1.6; + color: #333333; + max-width: 500px; + margin: 10px 0; +} + +/* עיצוב שורת המחץ או השאלה (הפסקה הראשונה) */ +.jokePage p:first-of-type { + font-weight: bold; + font-size: 1.5rem; + color: #4f46e5; /* צבע סגול חגיגי */ + margin-bottom: 15px; +} + +/* עיצוב כפתור החזרה */ +.jokePage button { + margin-top: 25px; + padding: 10px 24px; + font-size: 1rem; + font-weight: 600; + color: #ffffff; + background-color: #4f46e5; + border: none; + border-radius: 8px; + cursor: pointer; + transition: background-color 0.2s ease, transform 0.1s ease; + box-shadow: 0 4px 6px -1px rgba(79, 70, 229, 0.2); +} + +.jokePage button:hover { + background-color: #4338ca; +} + +.jokePage button:active { + transform: scale(0.98); +} + +/* ========================================== */ +/* עיצוב לכרטיס (Card.tsx) למקרה שמציגים אותו */ +/* ========================================== */ +.card { + background: #ffffff; + border: 1px solid #e5e7eb; + border-radius: 12px; + padding: 20px; + max-width: 350px; + margin: 15px auto; + box-shadow: 0 4px 6px -1px rgba(0, 0, 0, 0.05); + cursor: pointer; + transition: transform 0.2s ease, box-shadow 0.2s ease; + direction: rtl; +} + +.card:hover { + transform: translateY(-4px); + box-shadow: 0 10px 15px -3px rgba(0, 0, 0, 0.1); +} + +.title { + font-size: 1.2rem; + color: #111827; + margin: 0 0 10px 0; +} + +.name { + font-size: 0.9rem; + color: #6b7280; + margin: 0; +} \ No newline at end of file From 599ff61c6a799657be4ab51f6825b1e7addbfa3f Mon Sep 17 00:00:00 2001 From: Yasho9797 Date: Tue, 26 May 2026 18:52:40 +0300 Subject: [PATCH 10/12] add: yael joke butifull --- src/students/yael-shoham/Card.tsx | 35 +++- src/students/yael-shoham/JokePage.tsx | 50 +++-- src/students/yael-shoham/styles.module.css | 208 +++++++++++++++------ 3 files changed, 214 insertions(+), 79 deletions(-) diff --git a/src/students/yael-shoham/Card.tsx b/src/students/yael-shoham/Card.tsx index 6b78292..9c9285a 100644 --- a/src/students/yael-shoham/Card.tsx +++ b/src/students/yael-shoham/Card.tsx @@ -1,11 +1,28 @@ -import styles from "./styles.module.css"; -import { CardProps } from "../../types"; - -export default function YaelCard({ student, onClick }: CardProps) { - return ( -
-

{student.jokeTitle}

-

{student.name}

+import React from 'react'; +import styles from './styles.module.css'; + +interface CardProps { + onClick: () => void; +} + +export default function YaelCard({ student, onClick }: any) { return ( +
+ {/* אייקון עליון */} +
+ 👦💬 +
+ + {/* כותרת ותת כותרת */} +

הילד המדבר

+ +
+ יעל שהם +
+ + {/* כפתור לחיצה דקורטיבי */} +
); -} \ No newline at end of file +}; \ No newline at end of file diff --git a/src/students/yael-shoham/JokePage.tsx b/src/students/yael-shoham/JokePage.tsx index 6ed72b7..644ce55 100644 --- a/src/students/yael-shoham/JokePage.tsx +++ b/src/students/yael-shoham/JokePage.tsx @@ -1,14 +1,40 @@ -import styles from "./styles.module.css"; -import { PageProps } from "../../types"; - -export default function YaelJokePage({ onBack }: PageProps) { - return ( -
-

מדוע לדבר לעצמי?

-

אמא שואלת את הילד: "למה אתה מדבר עם עצמך?" - הילד עונה: "כי אני היחיד שמבין אותי." - אמא: "טוב, לפחות דבר עם מישהו חכם."

- +import React from 'react'; +import styles from './styles.module.css'; + +interface JokePageProps { + onBack: () => void; +} + +export default function YaelJokePage({ student, onBack }: any) { return ( +
+ {/* שורת אייקונים דקורטיבית למעלה */} +
+ 👦 💬 ✨ 🧠 💡 +
+ + {/* התיבה המרכזית של הבדיחה */} +
+
+ 💡 הבדיחה +
+ + {/* קופסת השאלה */} +
+

אמא שואלת:

+

"למה אתה תמיד מדבר עם עצמך?"

+
+ + {/* קופסת התשובה */} +
+

הילד עונה:

+

"כי אני אוהב לדבר עם אנשים חכמים!"

+
+ + {/* כפתור חזרה */} + +
); -} \ No newline at end of file +}; \ No newline at end of file diff --git a/src/students/yael-shoham/styles.module.css b/src/students/yael-shoham/styles.module.css index ac05acd..2c14978 100644 --- a/src/students/yael-shoham/styles.module.css +++ b/src/students/yael-shoham/styles.module.css @@ -1,85 +1,177 @@ -/* עיצוב כללי לעמוד הבדיחה */ -.jokePage { +/* --- עיצוב הכרטיסייה החיצונית (Card) --- */ +.cardContainer { + width: 100%; + max-width: 340px; + min-height: 250px; + background: rgba(255, 255, 255, 0.75); + backdrop-filter: blur(10px); + border-radius: 24px; + border: 1px solid rgba(255, 255, 255, 0.5); + padding: 30px 24px; display: flex; flex-direction: column; align-items: center; - justify-content: center; - min-height: 60vh; - padding: 20px; text-align: center; - font-family: system-ui, -apple-system, sans-serif; - direction: rtl; /* תמיכה בעברית מימין לשמאל */ + box-shadow: 0 8px 30px rgba(0, 0, 0, 0.04); + cursor: pointer; + transition: all 0.3s ease; } -/* עיצוב הטקסט של הבדיחה */ -.jokePage p { - font-size: 1.25rem; - line-height: 1.6; - color: #333333; - max-width: 500px; - margin: 10px 0; +.cardContainer:hover { + transform: translateY(-5px); + box-shadow: 0 20px 40px rgba(148, 163, 184, 0.12); +} + +.iconBubble { + width: 64px; + height: 64px; + background: linear-gradient(135deg, #fef3c7, #fff7ed); + border-radius: 16px; + display: flex; + align-items: center; + justify-content: center; + font-size: 28px; + margin-bottom: 20px; + box-shadow: inset 0 2px 4px rgba(0,0,0,0.02); } -/* עיצוב שורת המחץ או השאלה (הפסקה הראשונה) */ -.jokePage p:first-of-type { - font-weight: bold; - font-size: 1.5rem; - color: #4f46e5; /* צבע סגול חגיגי */ - margin-bottom: 15px; +.cardTitle { + font-size: 24px; + font-weight: 800; + color: #1e293b; + margin: 0 0 6px 0; } -/* עיצוב כפתור החזרה */ -.jokePage button { - margin-top: 25px; - padding: 10px 24px; - font-size: 1rem; +.authorBadge { + background-color: #f1f5f9; + color: #475569; + font-size: 12px; font-weight: 600; - color: #ffffff; - background-color: #4f46e5; + padding: 4px 14px; + border-radius: 100px; + margin-bottom: 24px; +} + +.actionButton { + background: linear-gradient(90deg, #38bdf8, #3b82f6); + color: white; border: none; - border-radius: 8px; + font-size: 14px; + font-weight: 700; + padding: 10px 24px; + border-radius: 12px; + box-shadow: 0 4px 12px rgba(59, 130, 246, 0.2); cursor: pointer; - transition: background-color 0.2s ease, transform 0.1s ease; - box-shadow: 0 4px 6px -1px rgba(79, 70, 229, 0.2); + transition: all 0.2s ease; } -.jokePage button:hover { - background-color: #4338ca; +.cardContainer:hover .actionButton { + background: linear-gradient(90deg, #0ea5e9, #2563eb); + transform: scale(1.02); } -.jokePage button:active { - transform: scale(0.98); +/* --- עיצוב עמוד הבדיחה הפנימי (JokePage) --- */ +.pageWrapper { + width: 100%; + display: flex; + flex-direction: column; + align-items: center; + padding: 20px; + animation: fadeIn 0.4s ease-out; } -/* ========================================== */ -/* עיצוב לכרטיס (Card.tsx) למקרה שמציגים אותו */ -/* ========================================== */ -.card { - background: #ffffff; - border: 1px solid #e5e7eb; - border-radius: 12px; - padding: 20px; - max-width: 350px; - margin: 15px auto; - box-shadow: 0 4px 6px -1px rgba(0, 0, 0, 0.05); - cursor: pointer; - transition: transform 0.2s ease, box-shadow 0.2s ease; - direction: rtl; +.decorIcons { + font-size: 20px; + letter-spacing: 8px; + margin-bottom: 16px; + opacity: 0.8; +} + +.jokeBox { + width: 100%; + max-width: 500px; + background: rgba(255, 255, 255, 0.9); + border-radius: 28px; + border: 1px solid #f1f5f9; + padding: 30px; + box-shadow: 0 15px 40px rgba(0, 0, 0, 0.05); + display: flex; + flex-direction: column; + align-items: center; +} + +.boxHeader { + margin-bottom: 24px; +} + +.headerBadge { + background-color: #fef3c7; + color: #b45309; + font-size: 12px; + font-weight: 700; + padding: 4px 12px; + border-radius: 8px; +} + +.questionBox { + width: 100%; + background-color: #f8fafc; + border: 1px solid #e2e8f0; + border-radius: 16px; + padding: 16px; + margin-bottom: 16px; + text-align: right; } -.card:hover { - transform: translateY(-4px); - box-shadow: 0 10px 15px -3px rgba(0, 0, 0, 0.1); +.answerBox { + width: 100%; + background-color: #fffbeb; + border: 1px solid #fde68a; + border-radius: 16px; + padding: 16px; + margin-bottom: 28px; + text-align: right; } -.title { - font-size: 1.2rem; - color: #111827; - margin: 0 0 10px 0; +.dialogLabel { + font-size: 11px; + font-weight: 700; + color: #64748b; + margin: 0 0 4px 0; } -.name { - font-size: 0.9rem; - color: #6b7280; +.dialogLabelAnswer { + font-size: 11px; + font-weight: 700; + color: #d97706; + margin: 0 0 4px 0; +} + +.textMain { + font-size: 16px; + font-weight: 600; + color: #0f172a; margin: 0; + line-height: 1.5; +} + +.backButton { + background-color: #06b6d4; + color: white; + border: none; + font-size: 14px; + font-weight: 700; + padding: 12px 30px; + border-radius: 100px; + cursor: pointer; + transition: background-color 0.2s ease; +} + +.backButton:hover { + background-color: #0891b2; +} + +@keyframes fadeIn { + from { opacity: 0; transform: translateY(10px); } + to { opacity: 1; transform: translateY(0); } } \ No newline at end of file From 96f7bc992f5c15ce22cb89a654a82e56a5cf6f31 Mon Sep 17 00:00:00 2001 From: Yasho9797 Date: Tue, 26 May 2026 19:06:07 +0300 Subject: [PATCH 11/12] fix: clean default exports for yael components --- src/students/yael-shoham/Card.tsx | 14 ++++----- src/students/yael-shoham/JokePage.tsx | 42 ++++++++++++--------------- 2 files changed, 24 insertions(+), 32 deletions(-) diff --git a/src/students/yael-shoham/Card.tsx b/src/students/yael-shoham/Card.tsx index 9c9285a..ccc25cb 100644 --- a/src/students/yael-shoham/Card.tsx +++ b/src/students/yael-shoham/Card.tsx @@ -1,15 +1,11 @@ -import React from 'react'; -import styles from './styles.module.css'; +import styles from "./styles.module.css"; -interface CardProps { - onClick: () => void; -} - -export default function YaelCard({ student, onClick }: any) { return ( +export default function YaelCard({ onClick }: any) { + return (
{/* אייקון עליון */}
- 👦💬 + 👦 💬
{/* כותרת ותת כותרת */} @@ -25,4 +21,4 @@ export default function YaelCard({ student, onClick }: any) { return (
); -}; \ No newline at end of file +} \ No newline at end of file diff --git a/src/students/yael-shoham/JokePage.tsx b/src/students/yael-shoham/JokePage.tsx index 644ce55..46a1ef2 100644 --- a/src/students/yael-shoham/JokePage.tsx +++ b/src/students/yael-shoham/JokePage.tsx @@ -1,11 +1,7 @@ -import React from 'react'; -import styles from './styles.module.css'; +import styles from "./styles.module.css"; -interface JokePageProps { - onBack: () => void; -} - -export default function YaelJokePage({ student, onBack }: any) { return ( +export default function YaelJokePage({ onBack }: any) { + return (
{/* שורת אייקונים דקורטיבית למעלה */}
@@ -17,24 +13,24 @@ export default function YaelJokePage({ student, onBack }: any) { return (
💡 הבדיחה
+
- {/* קופסת השאלה */} -
-

אמא שואלת:

-

"למה אתה תמיד מדבר עם עצמך?"

-
- - {/* קופסת התשובה */} -
-

הילד עונה:

-

"כי אני אוהב לדבר עם אנשים חכמים!"

-
+ {/* קופסת השאלה */} +
+

אמא שואלת:

+

"למה אתה תמיד מדבר WITH עצמך?"

+
- {/* כפתור חזרה */} - + {/* קופסת התשובה */} +
+

הילד עונה:

+

"כי אני אוהב לדבר עם אנשים חכמים!"

+ + {/* כפתור חזרה */} +
); -}; \ No newline at end of file +} \ No newline at end of file From ae8978257860058c0ced9ce6cf95065142e046f9 Mon Sep 17 00:00:00 2001 From: Yasho9797 Date: Tue, 26 May 2026 19:23:38 +0300 Subject: [PATCH 12/12] style: perfect final layout for joke and card --- src/students/yael-shoham/Card.tsx | 7 +- src/students/yael-shoham/JokePage.tsx | 31 +-- src/students/yael-shoham/styles.module.css | 270 +++++++++++---------- 3 files changed, 151 insertions(+), 157 deletions(-) diff --git a/src/students/yael-shoham/Card.tsx b/src/students/yael-shoham/Card.tsx index ccc25cb..a911460 100644 --- a/src/students/yael-shoham/Card.tsx +++ b/src/students/yael-shoham/Card.tsx @@ -3,21 +3,18 @@ import styles from "./styles.module.css"; export default function YaelCard({ onClick }: any) { return (
- {/* אייקון עליון */}
- 👦 💬 + 👦
- {/* כותרת ותת כותרת */}

הילד המדבר

יעל שהם
- {/* כפתור לחיצה דקורטיבי */}
); diff --git a/src/students/yael-shoham/JokePage.tsx b/src/students/yael-shoham/JokePage.tsx index 46a1ef2..63af5e5 100644 --- a/src/students/yael-shoham/JokePage.tsx +++ b/src/students/yael-shoham/JokePage.tsx @@ -2,32 +2,21 @@ import styles from "./styles.module.css"; export default function YaelJokePage({ onBack }: any) { return ( -
- {/* שורת אייקונים דקורטיבית למעלה */} -
- 👦 💬 ✨ 🧠 💡 -
+
+
👦 💬 ✨
- {/* התיבה המרכזית של הבדיחה */} -
-
- 💡 הבדיחה +
+
+ אמא שואלת: +

"למה אתה תמיד מדבר עם עצמך?"

-
- {/* קופסת השאלה */} -
-

אמא שואלת:

-

"למה אתה תמיד מדבר WITH עצמך?"

-
- - {/* קופסת התשובה */} -
-

הילד עונה:

-

"כי אני אוהב לדבר עם אנשים חכמים!"

+
+ הילד עונה: +

"כי אני אוהב לדבר עם אנשים חכמים!"

+
- {/* כפתור חזרה */} diff --git a/src/students/yael-shoham/styles.module.css b/src/students/yael-shoham/styles.module.css index 2c14978..687841a 100644 --- a/src/students/yael-shoham/styles.module.css +++ b/src/students/yael-shoham/styles.module.css @@ -1,177 +1,185 @@ -/* --- עיצוב הכרטיסייה החיצונית (Card) --- */ -.cardContainer { - width: 100%; - max-width: 340px; - min-height: 250px; - background: rgba(255, 255, 255, 0.75); - backdrop-filter: blur(10px); - border-radius: 24px; - border: 1px solid rgba(255, 255, 255, 0.5); - padding: 30px 24px; +/* רקע כללי עם גרדיאנט עדין ויוקרתי */ +.pageWrapper { + min-height: 100vh; + background: linear-gradient(135deg, #667eea 0%, #764ba2 100%); display: flex; flex-direction: column; align-items: center; - text-align: center; - box-shadow: 0 8px 30px rgba(0, 0, 0, 0.04); - cursor: pointer; - transition: all 0.3s ease; + justify-content: center; + padding: 40px 20px; + font-family: 'Segoe UI', Tahoma, Geneva, Verdana, sans-serif; + direction: rtl; } -.cardContainer:hover { - transform: translateY(-5px); - box-shadow: 0 20px 40px rgba(148, 163, 184, 0.12); +/* כותרת האייקונים למעלה */ +.decorIcons { + font-size: 2.5rem; + margin-bottom: 30px; + filter: drop-shadow(0 5px 15px rgba(0,0,0,0.2)); } -.iconBubble { - width: 64px; - height: 64px; - background: linear-gradient(135deg, #fef3c7, #fff7ed); - border-radius: 16px; +/* קונטיינר מרכזי שמאגד הכל */ +.jokeContainer { + width: 100%; + max-width: 600px; + background: rgba(255, 255, 255, 0.95); + border-radius: 30px; + padding: 40px; + box-shadow: 0 20px 50px rgba(0,0,0,0.3); display: flex; - align-items: center; - justify-content: center; - font-size: 28px; - margin-bottom: 20px; - box-shadow: inset 0 2px 4px rgba(0,0,0,0.02); + flex-direction: column; + gap: 25px; } -.cardTitle { - font-size: 24px; - font-weight: 800; - color: #1e293b; - margin: 0 0 6px 0; +/* עיצוב הבועות של השאלה והתשובה */ +.questionBox, .answerBox { + padding: 20px 25px; + border-radius: 20px; + position: relative; + transition: transform 0.3s ease; } -.authorBadge { - background-color: #f1f5f9; - color: #475569; - font-size: 12px; - font-weight: 600; - padding: 4px 14px; - border-radius: 100px; - margin-bottom: 24px; +.questionBox { + background-color: #f0f4ff; + border-right: 5px solid #4a90e2; + align-self: flex-start; + width: 90%; } -.actionButton { - background: linear-gradient(90deg, #38bdf8, #3b82f6); - color: white; - border: none; - font-size: 14px; - font-weight: 700; - padding: 10px 24px; - border-radius: 12px; - box-shadow: 0 4px 12px rgba(59, 130, 246, 0.2); - cursor: pointer; - transition: all 0.2s ease; +.answerBox { + background-color: #fff9e6; + border-right: 5px solid #f5a623; + align-self: flex-end; + width: 90%; } -.cardContainer:hover .actionButton { - background: linear-gradient(90deg, #0ea5e9, #2563eb); - transform: scale(1.02); +.questionBox:hover, .answerBox:hover { + transform: translateY(-5px); } -/* --- עיצוב עמוד הבדיחה הפנימי (JokePage) --- */ -.pageWrapper { - width: 100%; - display: flex; - flex-direction: column; - align-items: center; - padding: 20px; - animation: fadeIn 0.4s ease-out; +/* תוויות הדובר (אמא / ילד) */ +.dialogLabel, .dialogLabelAnswer { + font-size: 0.9rem; + font-weight: bold; + margin-bottom: 8px; + display: block; } -.decorIcons { - font-size: 20px; - letter-spacing: 8px; - margin-bottom: 16px; - opacity: 0.8; -} +.dialogLabel { color: #2c5282; } +.dialogLabelAnswer { color: #744210; } -.jokeBox { - width: 100%; - max-width: 500px; - background: rgba(255, 255, 255, 0.9); - border-radius: 28px; - border: 1px solid #f1f5f9; - padding: 30px; - box-shadow: 0 15px 40px rgba(0, 0, 0, 0.05); - display: flex; - flex-direction: column; - align-items: center; +/* הטקסט המרכזי של הבדיחה */ +.textMain { + font-size: 1.4rem; + color: #2d3748; + margin: 0; + line-height: 1.4; } -.boxHeader { - margin-bottom: 24px; +/* כפתור חזרה מעוצב */ +.backButton { + margin-top: 20px; + padding: 15px 40px; + background: #4a90e2; + color: white; + border: none; + border-radius: 50px; + font-size: 1.1rem; + font-weight: bold; + cursor: pointer; + box-shadow: 0 10px 20px rgba(74, 144, 226, 0.4); + transition: all 0.3s ease; } -.headerBadge { - background-color: #fef3c7; - color: #b45309; - font-size: 12px; - font-weight: 700; - padding: 4px 12px; - border-radius: 8px; +.backButton:hover { + background: #357abd; + transform: scale(1.05); + box-shadow: 0 15px 25px rgba(74, 144, 226, 0.5); } -.questionBox { - width: 100%; - background-color: #f8fafc; +/* קונטיינר הכרטיסייה במפה */ +.cardContainer { + background: white; + border-radius: 20px; + padding: 24px; + text-align: center; + box-shadow: 0 10px 25px rgba(0, 0, 0, 0.08); border: 1px solid #e2e8f0; - border-radius: 16px; - padding: 16px; - margin-bottom: 16px; - text-align: right; + cursor: pointer; + transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1); + display: flex; + flex-direction: column; + align-items: center; + gap: 12px; + position: relative; + overflow: hidden; } -.answerBox { - width: 100%; - background-color: #fffbeb; - border: 1px solid #fde68a; - border-radius: 16px; - padding: 16px; - margin-bottom: 28px; - text-align: right; +/* אפקט ריחוף משגע לכרטיסייה */ +.cardContainer:hover { + transform: translateY(-8px); + box-shadow: 0 20px 35px rgba(102, 126, 234, 0.15); + border-color: #667eea; } -.dialogLabel { - font-size: 11px; - font-weight: 700; - color: #64748b; - margin: 0 0 4px 0; +/* בועת האייקון בכרטיסייה */ +.iconBubble { + width: 60px; + height: 60px; + background: #f0f4ff; + border-radius: 50%; + display: flex; + align-items: center; + justify-content: center; + font-size: 1.8rem; + transition: transform 0.3s ease; } -.dialogLabelAnswer { - font-size: 11px; +.cardContainer:hover .iconBubble { + transform: scale(1.1) rotate(5deg); + background: #667eea; +} + +/* כותרת הבדיחה בכרטיסייה */ +.cardTitle { + font-size: 1.25rem; font-weight: 700; - color: #d97706; - margin: 0 0 4px 0; + color: #1a202c; + margin: 0; } -.textMain { - font-size: 16px; +/* תג השם שלך */ +.authorBadge { + background: #edf2f7; + padding: 4px 12px; + border-radius: 30px; + font-size: 0.85rem; font-weight: 600; - color: #0f172a; - margin: 0; - line-height: 1.5; + color: #4a5568; } -.backButton { - background-color: #06b6d4; +.cardContainer:hover .authorBadge { + background: #764ba2; color: white; - border: none; - font-size: 14px; - font-weight: 700; - padding: 12px 30px; - border-radius: 100px; - cursor: pointer; - transition: background-color 0.2s ease; } -.backButton:hover { - background-color: #0891b2; +/* כפתור כניסה קטן בכרטיסייה */ +.actionButton { + margin-top: 8px; + width: 100%; + padding: 10px; + background: #f7fafc; + border: 1px solid #e2e8f0; + border-radius: 12px; + font-size: 0.9rem; + font-weight: bold; + color: #4a90e2; + cursor: pointer; + transition: all 0.2s ease; } -@keyframes fadeIn { - from { opacity: 0; transform: translateY(10px); } - to { opacity: 1; transform: translateY(0); } +.cardContainer:hover .actionButton { + background: #4a90e2; + color: white; + border-color: #4a90e2; } \ No newline at end of file