mirror of
https://github.com/HolgerHatGarKeineNode/einundzwanzig-nostr.git
synced 2026-06-03 00:55:35 +00:00
🗑️ Refactor Meetup model by removing unused $fillable fields and updating dependencies in composer.lock
- Removed unnecessary `city_id` and `created_by` attributes from `Meetup` model. - Updated multiple dependencies in `composer.lock`, including `guzzlehttp/guzzle`, `laravel/framework`, and other libraries to the latest versions. - Verified all updates maintain compatibility with existing functionality.
This commit is contained in:
@@ -0,0 +1,711 @@
|
||||
/**
|
||||
* Einundzwanzig Reveal.js Theme
|
||||
*
|
||||
* Übernimmt die Design-Tokens aus resources/css/theme.css
|
||||
*/
|
||||
|
||||
@import url('https://fonts.googleapis.com/css2?family=Inconsolata:wght@400;600;700;900&display=swap');
|
||||
|
||||
:root {
|
||||
/* Brand */
|
||||
--eu-orange: #FF5C00;
|
||||
--eu-orange-light: #FF8A4C;
|
||||
--eu-green-success: #22C55E;
|
||||
--eu-purple-accent: #7c3aed;
|
||||
--eu-green-nostr: #4a7c59;
|
||||
|
||||
/* Backgrounds (dark) */
|
||||
--eu-bg-page: #0A0A0B;
|
||||
--eu-bg-surface: #111113;
|
||||
--eu-bg-elevated: #1A1A1D;
|
||||
|
||||
/* Borders */
|
||||
--eu-border-default: #2A2A2E;
|
||||
--eu-border-subtle: #1F1F23;
|
||||
|
||||
/* Text */
|
||||
--eu-text-primary: #FFFFFF;
|
||||
--eu-text-secondary: #ADADB0;
|
||||
--eu-text-tertiary: #8B8B90;
|
||||
--eu-text-muted: rgba(255, 255, 255, 0.8);
|
||||
|
||||
/* Reveal overrides */
|
||||
--r-background-color: var(--eu-bg-page);
|
||||
--r-main-font: 'Inconsolata', 'Menlo', 'Monaco', monospace;
|
||||
--r-main-font-size: 28px;
|
||||
--r-main-color: var(--eu-text-primary);
|
||||
--r-heading-font: 'Inconsolata', monospace;
|
||||
--r-heading-color: var(--eu-text-primary);
|
||||
--r-heading-letter-spacing: -0.02em;
|
||||
--r-heading-text-shadow: none;
|
||||
--r-heading-text-transform: none;
|
||||
--r-heading-font-weight: 700;
|
||||
--r-link-color: var(--eu-orange);
|
||||
--r-link-color-hover: var(--eu-orange-light);
|
||||
--r-selection-background-color: var(--eu-orange);
|
||||
--r-selection-color: var(--eu-bg-page);
|
||||
--r-code-font: 'Inconsolata', monospace;
|
||||
}
|
||||
|
||||
.reveal-viewport {
|
||||
background: var(--eu-bg-page);
|
||||
background-image:
|
||||
radial-gradient(ellipse 80% 60% at 50% 0%, rgba(255, 92, 0, 0.08), transparent 60%),
|
||||
radial-gradient(ellipse 60% 40% at 90% 100%, rgba(74, 124, 89, 0.05), transparent 60%);
|
||||
}
|
||||
|
||||
.reveal {
|
||||
font-family: var(--r-main-font);
|
||||
color: var(--eu-text-primary);
|
||||
}
|
||||
|
||||
.reveal .slides {
|
||||
text-align: left;
|
||||
}
|
||||
|
||||
.reveal .slides > section,
|
||||
.reveal .slides > section > section {
|
||||
padding: 20px 20px;
|
||||
}
|
||||
|
||||
.reveal h1,
|
||||
.reveal h2,
|
||||
.reveal h3,
|
||||
.reveal h4 {
|
||||
color: var(--eu-text-primary);
|
||||
font-weight: 700;
|
||||
letter-spacing: -0.02em;
|
||||
margin-bottom: 0.5em;
|
||||
text-transform: none;
|
||||
}
|
||||
|
||||
.reveal h1 { font-size: 2.2em; font-weight: 900; }
|
||||
.reveal h2 { font-size: 1.5em; margin-bottom: 0.4em; }
|
||||
.reveal h3 { font-size: 1.2em; }
|
||||
|
||||
.reveal .accent,
|
||||
.reveal .orange {
|
||||
color: var(--eu-orange);
|
||||
}
|
||||
|
||||
.reveal .muted {
|
||||
color: var(--eu-text-secondary);
|
||||
}
|
||||
|
||||
.reveal .small {
|
||||
font-size: 0.7em;
|
||||
color: var(--eu-text-tertiary);
|
||||
}
|
||||
|
||||
.reveal p {
|
||||
color: var(--eu-text-muted);
|
||||
line-height: 1.4;
|
||||
margin: 0.4em 0;
|
||||
}
|
||||
|
||||
.reveal ul,
|
||||
.reveal ol {
|
||||
color: var(--eu-text-muted);
|
||||
line-height: 1.4;
|
||||
margin: 0.4em 0 0.4em 1.2em;
|
||||
}
|
||||
|
||||
.reveal li {
|
||||
margin: 0.2em 0;
|
||||
}
|
||||
|
||||
.reveal ul li::marker {
|
||||
color: var(--eu-orange);
|
||||
}
|
||||
|
||||
.reveal ol li::marker {
|
||||
color: var(--eu-orange);
|
||||
font-weight: 700;
|
||||
}
|
||||
|
||||
.reveal code {
|
||||
background: var(--eu-bg-elevated);
|
||||
border: 1px solid var(--eu-border-default);
|
||||
color: var(--eu-orange-light);
|
||||
padding: 0.1em 0.4em;
|
||||
border-radius: 4px;
|
||||
font-size: 0.85em;
|
||||
}
|
||||
|
||||
.reveal pre {
|
||||
background: var(--eu-bg-elevated);
|
||||
border: 1px solid var(--eu-border-default);
|
||||
border-radius: 8px;
|
||||
box-shadow: none;
|
||||
width: 100%;
|
||||
font-size: 0.55em;
|
||||
}
|
||||
|
||||
.reveal pre code {
|
||||
background: transparent;
|
||||
border: none;
|
||||
padding: 1.2em 1.4em;
|
||||
color: var(--eu-text-primary);
|
||||
border-radius: 0;
|
||||
}
|
||||
|
||||
/* Custom utility components */
|
||||
.eu-card {
|
||||
background: var(--eu-bg-surface);
|
||||
border: 1px solid var(--eu-border-default);
|
||||
border-radius: 10px;
|
||||
padding: 0.7em 0.9em;
|
||||
}
|
||||
|
||||
.eu-card-elevated {
|
||||
background: var(--eu-bg-elevated);
|
||||
border: 1px solid var(--eu-border-default);
|
||||
border-radius: 10px;
|
||||
padding: 0.7em 0.9em;
|
||||
}
|
||||
|
||||
.eu-grid-2 {
|
||||
display: grid;
|
||||
grid-template-columns: 1fr 1fr;
|
||||
gap: 0.8em;
|
||||
align-items: stretch;
|
||||
}
|
||||
|
||||
.eu-grid-3 {
|
||||
display: grid;
|
||||
grid-template-columns: repeat(3, 1fr);
|
||||
gap: 0.8em;
|
||||
align-items: stretch;
|
||||
}
|
||||
|
||||
.eu-grid-2 .eu-card,
|
||||
.eu-grid-3 .eu-card,
|
||||
.eu-grid-2 .eu-card-elevated,
|
||||
.eu-grid-3 .eu-card-elevated {
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
}
|
||||
|
||||
.eu-grid-3 .eu-card,
|
||||
.eu-grid-3 .eu-card-elevated {
|
||||
font-size: 0.8em;
|
||||
}
|
||||
|
||||
.eu-feature-icon {
|
||||
font-size: 1.8em;
|
||||
color: var(--eu-orange);
|
||||
margin-bottom: 0.3em;
|
||||
line-height: 1;
|
||||
}
|
||||
|
||||
.eu-feature-title {
|
||||
font-weight: 700;
|
||||
color: var(--eu-text-primary);
|
||||
margin-bottom: 0.3em;
|
||||
}
|
||||
|
||||
.eu-feature-desc {
|
||||
color: var(--eu-text-secondary);
|
||||
font-size: 0.85em;
|
||||
}
|
||||
|
||||
.eu-badge {
|
||||
display: inline-block;
|
||||
background: var(--eu-orange);
|
||||
color: var(--eu-bg-page);
|
||||
padding: 0.15em 0.7em;
|
||||
border-radius: 999px;
|
||||
font-weight: 700;
|
||||
font-size: 0.7em;
|
||||
letter-spacing: 0.04em;
|
||||
text-transform: uppercase;
|
||||
}
|
||||
|
||||
.eu-badge.green {
|
||||
background: var(--eu-green-nostr);
|
||||
color: var(--eu-text-primary);
|
||||
}
|
||||
|
||||
.eu-badge.purple {
|
||||
background: var(--eu-purple-accent);
|
||||
color: var(--eu-text-primary);
|
||||
}
|
||||
|
||||
.eu-tag {
|
||||
display: inline-block;
|
||||
background: var(--eu-bg-elevated);
|
||||
border: 1px solid var(--eu-border-default);
|
||||
color: var(--eu-text-secondary);
|
||||
padding: 0.2em 0.7em;
|
||||
border-radius: 6px;
|
||||
font-size: 0.7em;
|
||||
margin-right: 0.3em;
|
||||
}
|
||||
|
||||
.eu-meme-frame {
|
||||
background: var(--eu-bg-elevated);
|
||||
border: 2px dashed var(--eu-orange);
|
||||
border-radius: 16px;
|
||||
padding: 1em 1.2em;
|
||||
position: relative;
|
||||
}
|
||||
|
||||
.eu-ascii-art {
|
||||
font-family: 'Inconsolata', monospace;
|
||||
color: var(--eu-orange);
|
||||
font-size: 0.38em;
|
||||
line-height: 1.1;
|
||||
white-space: pre;
|
||||
text-align: center;
|
||||
}
|
||||
|
||||
.eu-emoji-art {
|
||||
font-size: 5em;
|
||||
text-align: center;
|
||||
line-height: 1;
|
||||
}
|
||||
|
||||
.eu-divider {
|
||||
border: none;
|
||||
border-top: 1px solid var(--eu-border-default);
|
||||
margin: 1em 0;
|
||||
}
|
||||
|
||||
.reveal blockquote {
|
||||
background: var(--eu-bg-surface);
|
||||
border-left: 4px solid var(--eu-orange);
|
||||
border-radius: 0 8px 8px 0;
|
||||
box-shadow: none;
|
||||
padding: 0.8em 1.2em;
|
||||
font-style: italic;
|
||||
color: var(--eu-text-muted);
|
||||
}
|
||||
|
||||
.reveal section img {
|
||||
background: transparent;
|
||||
border: none;
|
||||
box-shadow: none;
|
||||
border-radius: 8px;
|
||||
}
|
||||
|
||||
.reveal .controls {
|
||||
color: var(--eu-orange);
|
||||
}
|
||||
|
||||
.reveal .progress {
|
||||
color: var(--eu-orange);
|
||||
background: var(--eu-bg-surface);
|
||||
}
|
||||
|
||||
.reveal .slide-number {
|
||||
color: var(--eu-text-tertiary);
|
||||
background: transparent;
|
||||
font-family: var(--r-main-font);
|
||||
}
|
||||
|
||||
.eu-title-slide {
|
||||
text-align: center !important;
|
||||
display: flex !important;
|
||||
flex-direction: column;
|
||||
align-items: center;
|
||||
justify-content: center;
|
||||
}
|
||||
|
||||
.eu-title-slide h1 {
|
||||
font-size: 3em;
|
||||
line-height: 1.1;
|
||||
margin-top: 0.4em;
|
||||
}
|
||||
|
||||
.eu-title-slide .subtitle {
|
||||
color: var(--eu-text-secondary);
|
||||
font-size: 1.1em;
|
||||
margin-top: 0.5em;
|
||||
letter-spacing: 0.1em;
|
||||
}
|
||||
|
||||
.eu-title-slide img {
|
||||
max-width: 60%;
|
||||
height: auto;
|
||||
}
|
||||
|
||||
.eu-two-col {
|
||||
display: grid;
|
||||
grid-template-columns: 1fr 1fr;
|
||||
gap: 2em;
|
||||
align-items: center;
|
||||
}
|
||||
|
||||
.eu-step {
|
||||
display: flex;
|
||||
gap: 0.7em;
|
||||
align-items: flex-start;
|
||||
margin-bottom: 0.5em;
|
||||
}
|
||||
|
||||
.eu-step-num {
|
||||
flex-shrink: 0;
|
||||
width: 1.6em;
|
||||
height: 1.6em;
|
||||
border-radius: 999px;
|
||||
background: var(--eu-orange);
|
||||
color: var(--eu-bg-page);
|
||||
display: flex;
|
||||
align-items: center;
|
||||
justify-content: center;
|
||||
font-weight: 900;
|
||||
font-size: 0.85em;
|
||||
}
|
||||
|
||||
.eu-step-body {
|
||||
flex: 1;
|
||||
color: var(--eu-text-muted);
|
||||
line-height: 1.3;
|
||||
}
|
||||
|
||||
.eu-step-body strong {
|
||||
color: var(--eu-text-primary);
|
||||
display: block;
|
||||
margin-bottom: 0.05em;
|
||||
}
|
||||
|
||||
/* ----------------------------------------
|
||||
Mock-UI: Browser-Fenster im Look der App
|
||||
----------------------------------------- */
|
||||
.eu-app-frame {
|
||||
background: var(--eu-bg-surface);
|
||||
border: 1px solid var(--eu-border-default);
|
||||
border-radius: 14px;
|
||||
overflow: hidden;
|
||||
font-size: 0.68em;
|
||||
line-height: 1.4;
|
||||
box-shadow: 0 10px 40px rgba(0, 0, 0, 0.4);
|
||||
}
|
||||
|
||||
.eu-app-frame-bar {
|
||||
background: var(--eu-bg-elevated);
|
||||
border-bottom: 1px solid var(--eu-border-default);
|
||||
padding: 0.5em 0.9em;
|
||||
display: flex;
|
||||
align-items: center;
|
||||
gap: 0.5em;
|
||||
}
|
||||
|
||||
.eu-app-frame-dots {
|
||||
display: flex;
|
||||
gap: 0.35em;
|
||||
}
|
||||
|
||||
.eu-app-frame-dot {
|
||||
width: 0.7em;
|
||||
height: 0.7em;
|
||||
border-radius: 999px;
|
||||
background: var(--eu-border-default);
|
||||
}
|
||||
|
||||
.eu-app-frame-url {
|
||||
flex: 1;
|
||||
background: var(--eu-bg-page);
|
||||
border: 1px solid var(--eu-border-default);
|
||||
border-radius: 6px;
|
||||
padding: 0.2em 0.7em;
|
||||
color: var(--eu-text-tertiary);
|
||||
font-size: 0.85em;
|
||||
text-align: center;
|
||||
}
|
||||
|
||||
.eu-app-frame-nav {
|
||||
background: var(--eu-bg-surface);
|
||||
border-bottom: 1px solid var(--eu-border-default);
|
||||
padding: 0.5em 1em;
|
||||
display: flex;
|
||||
align-items: center;
|
||||
gap: 1em;
|
||||
color: var(--eu-text-secondary);
|
||||
font-size: 0.85em;
|
||||
}
|
||||
|
||||
.eu-app-frame-nav .brand {
|
||||
color: var(--eu-text-primary);
|
||||
font-weight: 900;
|
||||
letter-spacing: 0.05em;
|
||||
}
|
||||
|
||||
.eu-app-frame-nav .nav-item.active {
|
||||
color: var(--eu-orange);
|
||||
font-weight: 700;
|
||||
}
|
||||
|
||||
.eu-app-frame-body {
|
||||
padding: 1em 1.2em;
|
||||
}
|
||||
|
||||
.eu-app-h1 {
|
||||
color: var(--eu-text-primary);
|
||||
font-weight: 700;
|
||||
font-size: 1.5em;
|
||||
margin-bottom: 0.7em;
|
||||
}
|
||||
|
||||
/* News-Item, Projekt-Item etc. */
|
||||
.eu-app-list-item {
|
||||
background: var(--eu-bg-elevated);
|
||||
border: 1px solid var(--eu-border-default);
|
||||
border-radius: 8px;
|
||||
padding: 0.7em 0.9em;
|
||||
margin-bottom: 0.5em;
|
||||
display: flex;
|
||||
align-items: flex-start;
|
||||
gap: 0.7em;
|
||||
}
|
||||
|
||||
.eu-app-list-item .icon {
|
||||
color: var(--eu-orange);
|
||||
flex-shrink: 0;
|
||||
width: 1.6em;
|
||||
height: 1.6em;
|
||||
border-radius: 6px;
|
||||
background: rgba(255, 92, 0, 0.12);
|
||||
display: flex;
|
||||
align-items: center;
|
||||
justify-content: center;
|
||||
}
|
||||
|
||||
.eu-app-list-item .body {
|
||||
flex: 1;
|
||||
min-width: 0;
|
||||
}
|
||||
|
||||
.eu-app-list-item .title {
|
||||
color: var(--eu-text-primary);
|
||||
font-weight: 700;
|
||||
}
|
||||
|
||||
.eu-app-list-item .meta {
|
||||
color: var(--eu-text-tertiary);
|
||||
font-size: 0.85em;
|
||||
margin-top: 0.1em;
|
||||
}
|
||||
|
||||
.eu-app-filter-row {
|
||||
display: flex;
|
||||
flex-wrap: wrap;
|
||||
gap: 0.4em;
|
||||
margin-bottom: 0.8em;
|
||||
}
|
||||
|
||||
.eu-app-chip {
|
||||
background: var(--eu-bg-elevated);
|
||||
border: 1px solid var(--eu-border-default);
|
||||
border-radius: 999px;
|
||||
padding: 0.2em 0.8em;
|
||||
color: var(--eu-text-secondary);
|
||||
font-size: 0.85em;
|
||||
}
|
||||
|
||||
.eu-app-chip.active {
|
||||
background: var(--eu-orange);
|
||||
color: var(--eu-bg-page);
|
||||
border-color: var(--eu-orange);
|
||||
font-weight: 700;
|
||||
}
|
||||
|
||||
.eu-app-button {
|
||||
display: inline-flex;
|
||||
align-items: center;
|
||||
gap: 0.4em;
|
||||
background: var(--eu-orange);
|
||||
color: var(--eu-bg-page);
|
||||
border: none;
|
||||
border-radius: 8px;
|
||||
padding: 0.35em 0.9em;
|
||||
font-weight: 700;
|
||||
font-size: 0.9em;
|
||||
}
|
||||
|
||||
.eu-app-button.ghost {
|
||||
background: transparent;
|
||||
color: var(--eu-text-primary);
|
||||
border: 1px solid var(--eu-border-default);
|
||||
}
|
||||
|
||||
.eu-app-status-badge {
|
||||
display: inline-block;
|
||||
padding: 0.15em 0.6em;
|
||||
border-radius: 999px;
|
||||
font-size: 0.75em;
|
||||
font-weight: 700;
|
||||
}
|
||||
|
||||
.eu-app-status-badge.green {
|
||||
background: rgba(34, 197, 94, 0.15);
|
||||
color: var(--eu-green-success);
|
||||
}
|
||||
|
||||
.eu-app-status-badge.orange {
|
||||
background: rgba(255, 92, 0, 0.15);
|
||||
color: var(--eu-orange);
|
||||
}
|
||||
|
||||
/* Vorteils-Karten im Stil des Originals */
|
||||
.eu-benefit-card {
|
||||
border-radius: 10px;
|
||||
padding: 0.8em 1em;
|
||||
border: 1px solid;
|
||||
display: flex;
|
||||
gap: 0.7em;
|
||||
align-items: flex-start;
|
||||
}
|
||||
|
||||
.eu-benefit-card .ico {
|
||||
width: 2em;
|
||||
height: 2em;
|
||||
border-radius: 999px;
|
||||
display: flex;
|
||||
align-items: center;
|
||||
justify-content: center;
|
||||
flex-shrink: 0;
|
||||
font-size: 0.9em;
|
||||
}
|
||||
|
||||
.eu-benefit-card.amber {
|
||||
background: linear-gradient(135deg, rgba(252, 211, 77, 0.08), rgba(251, 146, 60, 0.06));
|
||||
border-color: rgba(252, 211, 77, 0.25);
|
||||
}
|
||||
|
||||
.eu-benefit-card.amber .ico {
|
||||
background: rgba(180, 83, 9, 0.4);
|
||||
color: #fbbf24;
|
||||
}
|
||||
|
||||
.eu-benefit-card.emerald {
|
||||
background: linear-gradient(135deg, rgba(52, 211, 153, 0.08), rgba(20, 184, 166, 0.06));
|
||||
border-color: rgba(52, 211, 153, 0.25);
|
||||
}
|
||||
|
||||
.eu-benefit-card.emerald .ico {
|
||||
background: rgba(6, 95, 70, 0.4);
|
||||
color: #34d399;
|
||||
}
|
||||
|
||||
.eu-benefit-card.violet {
|
||||
background: linear-gradient(135deg, rgba(167, 139, 250, 0.08), rgba(139, 92, 246, 0.06));
|
||||
border-color: rgba(167, 139, 250, 0.25);
|
||||
}
|
||||
|
||||
.eu-benefit-card.violet .ico {
|
||||
background: rgba(76, 29, 149, 0.4);
|
||||
color: #a78bfa;
|
||||
}
|
||||
|
||||
.eu-benefit-card .title {
|
||||
color: var(--eu-text-primary);
|
||||
font-weight: 700;
|
||||
margin-bottom: 0.15em;
|
||||
}
|
||||
|
||||
.eu-benefit-card .desc {
|
||||
color: var(--eu-text-secondary);
|
||||
font-size: 0.85em;
|
||||
}
|
||||
|
||||
.eu-code-inline {
|
||||
background: var(--eu-bg-page);
|
||||
border: 1px solid var(--eu-border-default);
|
||||
border-radius: 4px;
|
||||
padding: 0.1em 0.4em;
|
||||
font-size: 0.8em;
|
||||
color: var(--eu-orange-light);
|
||||
}
|
||||
|
||||
.eu-section-label {
|
||||
color: var(--eu-orange);
|
||||
font-weight: 700;
|
||||
font-size: 0.75em;
|
||||
letter-spacing: 0.15em;
|
||||
margin-bottom: 0.3em;
|
||||
}
|
||||
|
||||
/* ----------------------------------------
|
||||
Form-Elemente (Mock-Formular)
|
||||
----------------------------------------- */
|
||||
.eu-form-row {
|
||||
margin-bottom: 0.6em;
|
||||
}
|
||||
|
||||
.eu-form-label {
|
||||
display: block;
|
||||
color: var(--eu-text-secondary);
|
||||
font-size: 0.8em;
|
||||
margin-bottom: 0.25em;
|
||||
}
|
||||
|
||||
.eu-form-input,
|
||||
.eu-form-textarea {
|
||||
width: 100%;
|
||||
background: var(--eu-bg-page);
|
||||
border: 1px solid var(--eu-border-default);
|
||||
border-radius: 6px;
|
||||
padding: 0.4em 0.7em;
|
||||
color: var(--eu-text-primary);
|
||||
font-family: 'Inconsolata', monospace;
|
||||
font-size: 0.95em;
|
||||
}
|
||||
|
||||
.eu-form-input.placeholder,
|
||||
.eu-form-textarea.placeholder {
|
||||
color: var(--eu-text-tertiary);
|
||||
}
|
||||
|
||||
.eu-form-textarea {
|
||||
min-height: 3em;
|
||||
line-height: 1.4;
|
||||
}
|
||||
|
||||
.eu-form-dropzone {
|
||||
border: 2px dashed var(--eu-orange);
|
||||
background: rgba(255, 92, 0, 0.05);
|
||||
border-radius: 10px;
|
||||
padding: 0.7em;
|
||||
text-align: center;
|
||||
color: var(--eu-text-secondary);
|
||||
font-size: 0.85em;
|
||||
}
|
||||
|
||||
.eu-highlight-ring {
|
||||
position: relative;
|
||||
box-shadow: 0 0 0 3px var(--eu-orange);
|
||||
border-radius: 8px;
|
||||
animation: euPulse 1.6s ease-in-out infinite;
|
||||
}
|
||||
|
||||
@keyframes euPulse {
|
||||
0%, 100% { box-shadow: 0 0 0 2px var(--eu-orange); }
|
||||
50% { box-shadow: 0 0 0 5px rgba(255, 92, 0, 0.5); }
|
||||
}
|
||||
|
||||
.eu-callout-arrow {
|
||||
color: var(--eu-orange);
|
||||
font-weight: 900;
|
||||
font-size: 0.9em;
|
||||
margin-top: 0.4em;
|
||||
display: flex;
|
||||
align-items: center;
|
||||
gap: 0.4em;
|
||||
}
|
||||
|
||||
.eu-vote-card {
|
||||
background: var(--eu-bg-elevated);
|
||||
border: 1px solid var(--eu-border-default);
|
||||
border-radius: 8px;
|
||||
padding: 0.5em 0.8em;
|
||||
display: flex;
|
||||
align-items: center;
|
||||
justify-content: space-between;
|
||||
margin-bottom: 0.3em;
|
||||
}
|
||||
|
||||
.eu-vote-card .num {
|
||||
color: var(--eu-orange);
|
||||
font-weight: 700;
|
||||
}
|
||||
Binary file not shown.
Binary file not shown.
|
After Width: | Height: | Size: 8.1 KiB |
Binary file not shown.
|
After Width: | Height: | Size: 24 KiB |
File diff suppressed because one or more lines are too long
|
After Width: | Height: | Size: 5.9 KiB |
+795
@@ -0,0 +1,795 @@
|
||||
<!DOCTYPE html>
|
||||
<html lang="de">
|
||||
<head>
|
||||
<meta charset="utf-8">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=no">
|
||||
|
||||
<title>EINUNDZWANZIG VEREINS PORTAL + NOSTR</title>
|
||||
|
||||
<link rel="icon" type="image/jpeg" href="img/einundzwanzig-alpha.jpg">
|
||||
|
||||
<!-- Reveal.js core + dark theme as base -->
|
||||
<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/reveal.js@5.1.0/dist/reset.css">
|
||||
<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/reveal.js@5.1.0/dist/reveal.css">
|
||||
<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/reveal.js@5.1.0/dist/theme/black.css" id="theme">
|
||||
|
||||
<!-- Code highlighting -->
|
||||
<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/reveal.js@5.1.0/plugin/highlight/monokai.css">
|
||||
|
||||
<!-- FontAwesome (gleiche Lib wie das Projekt) -->
|
||||
<script src="https://kit.fontawesome.com/866fd3d0ab.js" crossorigin="anonymous"></script>
|
||||
|
||||
<!-- Einundzwanzig Brand Theme -->
|
||||
<link rel="stylesheet" href="css/einundzwanzig-theme.css">
|
||||
</head>
|
||||
<body>
|
||||
|
||||
<div class="reveal">
|
||||
<div class="slides">
|
||||
|
||||
<!-- =========================================================
|
||||
SLIDE 1 — Titel
|
||||
============================================================== -->
|
||||
<section class="eu-title-slide" data-background-color="#0A0A0B">
|
||||
<img src="img/einundzwanzig-horizontal-inverted.svg" alt="EINUNDZWANZIG Logo">
|
||||
<h1>VEREINS PORTAL <span class="orange">+ NOSTR</span></h1>
|
||||
<p class="subtitle">Wie der Verein seine Mitglieder organisiert.</p>
|
||||
</section>
|
||||
|
||||
<!-- =========================================================
|
||||
SLIDE 2 — Was ist das Vereinsportal?
|
||||
============================================================== -->
|
||||
<section data-background-color="#0A0A0B">
|
||||
<h2><span class="orange">Was</span> ist das Vereinsportal?</h2>
|
||||
|
||||
<blockquote>
|
||||
Das Vereinsportal ist der <strong>digitale Schreibtisch</strong>
|
||||
für jedes Einundzwanzig‑Mitglied.
|
||||
</blockquote>
|
||||
|
||||
<div class="eu-grid-3" style="margin-top: 0.8em;">
|
||||
<div class="eu-card">
|
||||
<div class="eu-feature-icon"><i class="fa-solid fa-newspaper"></i></div>
|
||||
<div class="eu-feature-title">Informieren</div>
|
||||
<div class="eu-feature-desc">News aus dem Verein lesen</div>
|
||||
</div>
|
||||
<div class="eu-card">
|
||||
<div class="eu-feature-icon"><i class="fa-solid fa-hand-holding-heart"></i></div>
|
||||
<div class="eu-feature-title">Mitwirken</div>
|
||||
<div class="eu-feature-desc">Projekte vorschlagen & unterstützen</div>
|
||||
</div>
|
||||
<div class="eu-card">
|
||||
<div class="eu-feature-icon"><i class="fa-solid fa-gift"></i></div>
|
||||
<div class="eu-feature-title">Profitieren</div>
|
||||
<div class="eu-feature-desc">Mitglieder‑Vorteile einlösen</div>
|
||||
</div>
|
||||
</div>
|
||||
</section>
|
||||
|
||||
<!-- =========================================================
|
||||
SLIDE 3 — Feature-Übersicht (kompakte Liste)
|
||||
============================================================== -->
|
||||
<section data-background-color="#0A0A0B">
|
||||
<h2>Was kann ich <span class="orange">konkret</span> machen?</h2>
|
||||
|
||||
<div class="eu-grid-2" style="margin-top: 0.6em;">
|
||||
<div class="eu-card">
|
||||
<strong><i class="fa-solid fa-newspaper orange"></i> News lesen</strong>
|
||||
<div class="muted small">Updates vom Vorstand — kein Newsletter.</div>
|
||||
</div>
|
||||
<div class="eu-card">
|
||||
<strong><i class="fa-solid fa-identification orange"></i> Mein Mitgliederstatus</strong>
|
||||
<div class="muted small">Mitglied? Seit wann? Welche Rolle?</div>
|
||||
</div>
|
||||
<div class="eu-card">
|
||||
<strong><i class="fa-solid fa-gift orange"></i> Vorteile einlösen</strong>
|
||||
<div class="muted small">Rabatte und Angebote von Partnern.</div>
|
||||
</div>
|
||||
<div class="eu-card">
|
||||
<strong><i class="fa-solid fa-heart orange"></i> Projekte unterstützen</strong>
|
||||
<div class="muted small">Förderanträge sehen, einreichen, priorisieren.</div>
|
||||
</div>
|
||||
<div class="eu-card">
|
||||
<strong><i class="fa-solid fa-users-gear orange"></i> Mitglieder verwalten</strong>
|
||||
<div class="muted small">Nur für Vorstand.</div>
|
||||
</div>
|
||||
</div>
|
||||
</section>
|
||||
|
||||
<!-- =========================================================
|
||||
SLIDE 4 — Wie logge ich mich ein? (Teaser)
|
||||
============================================================== -->
|
||||
<section data-background-color="#0A0A0B">
|
||||
<h2>Wie logge ich mich <span class="orange">ein</span>?</h2>
|
||||
|
||||
<p>Sonst überall im Internet:</p>
|
||||
<ul>
|
||||
<li>E-Mail eintippen</li>
|
||||
<li>Passwort ausdenken & vergessen</li>
|
||||
<li>"Passwort zurücksetzen"‑Mail…</li>
|
||||
</ul>
|
||||
|
||||
<p style="margin-top: 1em;">Bei Einundzwanzig: <strong class="orange">Login per Nostr</strong>.</p>
|
||||
<p class="muted small">Keine E-Mail, kein Passwort, kein Anbieter dazwischen.</p>
|
||||
</section>
|
||||
|
||||
<!-- =========================================================
|
||||
SLIDE 5 — Spaß 1: Fax-Login
|
||||
============================================================== -->
|
||||
<section data-background-color="#0A0A0B">
|
||||
<div class="eu-meme-frame">
|
||||
<h2 style="margin-top: 0;">Option 1: <span class="orange">Das Fax-Login</span> ™</h2>
|
||||
|
||||
<div class="eu-two-col" style="margin-top: 0.6em; gap: 1.2em;">
|
||||
<div class="eu-emoji-art">📠</div>
|
||||
<div>
|
||||
<ol style="margin-left: 1em;">
|
||||
<li>Du rufst die Fax-Nummer von <strong>Markus Turm</strong> an</li>
|
||||
<li>Er faxt dir dein <em>persönliches Login-Passwort</em></li>
|
||||
<li>Du faxt die unterschriebene Anmeldung zurück</li>
|
||||
<li>4–6 Wochen Bearbeitungszeit</li>
|
||||
<li>Eingeloggt! <span class="orange">(Vielleicht.)</span></li>
|
||||
</ol>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</section>
|
||||
|
||||
<!-- =========================================================
|
||||
SLIDE 6 — Spaß 2: Nostr-Bändchen
|
||||
============================================================== -->
|
||||
<section data-background-color="#0A0A0B">
|
||||
<div class="eu-meme-frame">
|
||||
<h2 style="margin-top: 0;">Option 2: <span class="orange">Das Nostr-Bändchen</span> ™</h2>
|
||||
|
||||
<div class="eu-two-col" style="margin-top: 0.6em; gap: 1.2em;">
|
||||
<div class="eu-emoji-art">📿</div>
|
||||
<div>
|
||||
<ol style="margin-left: 1em;">
|
||||
<li>Du bestellst dein offizielles <strong>Einundzwanzig Nostr‑Bändchen</strong></li>
|
||||
<li>Wir versenden es per Brieftaube 🕊️</li>
|
||||
<li>Du klatschst das Bändchen ans Handy…</li>
|
||||
<li><strong class="orange">*BIIIP*</strong> — eingeloggt!</li>
|
||||
<li>Limitierte Auflage: <strong>21 Stück</strong></li>
|
||||
</ol>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</section>
|
||||
|
||||
<!-- =========================================================
|
||||
SLIDE 7 — Übergang: Jetzt ernsthaft
|
||||
============================================================== -->
|
||||
<section data-background-color="#0A0A0B" style="text-align: center;">
|
||||
<p class="muted" style="letter-spacing: 0.2em;">SPASS BEISEITE</p>
|
||||
<h1 style="margin-top: 0.3em;">So funktioniert <span class="orange">Nostr‑Login</span> wirklich.</h1>
|
||||
<p class="muted" style="margin-top: 0.8em;">Zwei echte Wege — einer am Desktop, einer am Handy.</p>
|
||||
</section>
|
||||
|
||||
<!-- =========================================================
|
||||
SLIDE 8 — Was ist Nostr (vereinfacht)
|
||||
============================================================== -->
|
||||
<section data-background-color="#0A0A0B">
|
||||
<h2>Kurz: Was ist <span class="orange">Nostr</span>?</h2>
|
||||
|
||||
<p>Ein <strong>offenes Protokoll</strong> für Identität im Internet — <strong>ohne</strong> Firma dahinter.</p>
|
||||
|
||||
<p style="margin-top: 0.6em;">Statt eines Accounts hast du <strong>zwei Schlüssel</strong>:</p>
|
||||
|
||||
<div class="eu-grid-2" style="margin-top: 0.4em;">
|
||||
<div class="eu-card">
|
||||
<strong class="orange"><i class="fa-solid fa-key"></i> Öffentlicher Schlüssel</strong>
|
||||
<div class="muted small">Dein "Benutzername". Darf jeder sehen.</div>
|
||||
</div>
|
||||
<div class="eu-card">
|
||||
<strong class="orange"><i class="fa-solid fa-lock"></i> Privater Schlüssel</strong>
|
||||
<div class="muted small">Dein "Passwort". Bleibt <em>immer</em> bei dir.</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<blockquote style="margin-top: 0.8em;">
|
||||
Du beweist deine Identität, ohne deinen privaten Schlüssel jemals an die Webseite zu schicken.
|
||||
</blockquote>
|
||||
</section>
|
||||
|
||||
<!-- =========================================================
|
||||
SLIDE 9 — Methode 1: Browser-Extension
|
||||
============================================================== -->
|
||||
<section data-background-color="#0A0A0B">
|
||||
<span class="eu-badge">Weg 1 — Desktop</span>
|
||||
<h2 style="margin-top: 0.3em;"><i class="fa-solid fa-puzzle-piece orange"></i> Browser-Extension</h2>
|
||||
<p class="muted">Für alle, die das Portal am Rechner nutzen.</p>
|
||||
|
||||
<div class="eu-two-col" style="margin-top: 0.6em; gap: 1.5em;">
|
||||
<div>
|
||||
<p><strong>Beliebte Extensions:</strong></p>
|
||||
<ul>
|
||||
<li><strong>Alby</strong> — mit Bitcoin-Wallet</li>
|
||||
<li><strong>nos2x</strong> — minimal, nur Nostr</li>
|
||||
</ul>
|
||||
<p class="small muted" style="margin-top: 0.6em;">
|
||||
Die Extension speichert deinen Schlüssel sicher im Browser.
|
||||
</p>
|
||||
</div>
|
||||
<div>
|
||||
<p><strong>So läufts ab:</strong></p>
|
||||
<div class="eu-step">
|
||||
<div class="eu-step-num">1</div>
|
||||
<div class="eu-step-body">"Mit Nostr verbinden" klicken</div>
|
||||
</div>
|
||||
<div class="eu-step">
|
||||
<div class="eu-step-num">2</div>
|
||||
<div class="eu-step-body">Pop-up der Extension bestätigen</div>
|
||||
</div>
|
||||
<div class="eu-step">
|
||||
<div class="eu-step-num">3</div>
|
||||
<div class="eu-step-body"><strong>Eingeloggt.</strong></div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</section>
|
||||
|
||||
<!-- =========================================================
|
||||
SLIDE 10 — Methode 2: Mobile mit Amber
|
||||
============================================================== -->
|
||||
<section data-background-color="#0A0A0B">
|
||||
<span class="eu-badge green">Weg 2 — Mobile</span>
|
||||
<h2 style="margin-top: 0.3em;"><i class="fa-solid fa-mobile-screen orange"></i> Login mit Amber-App</h2>
|
||||
<p class="muted">Für alle am Handy — mit der App <strong>Amber</strong> (Android).</p>
|
||||
|
||||
<div class="eu-two-col" style="margin-top: 0.6em; gap: 1.5em;">
|
||||
<div>
|
||||
<p><strong>Was macht Amber?</strong></p>
|
||||
<p class="muted small">
|
||||
Amber ist wie ein kleiner Tresor auf deinem Handy.
|
||||
Er bewahrt deinen Schlüssel sicher auf und fragt dich,
|
||||
bevor jemand etwas damit machen darf.
|
||||
</p>
|
||||
</div>
|
||||
<div>
|
||||
<p><strong>So läufts ab:</strong></p>
|
||||
<div class="eu-step">
|
||||
<div class="eu-step-num">1</div>
|
||||
<div class="eu-step-body">Im Portal: QR‑Code anzeigen lassen</div>
|
||||
</div>
|
||||
<div class="eu-step">
|
||||
<div class="eu-step-num">2</div>
|
||||
<div class="eu-step-body">Mit Amber den QR‑Code scannen</div>
|
||||
</div>
|
||||
<div class="eu-step">
|
||||
<div class="eu-step-num">3</div>
|
||||
<div class="eu-step-body">Amber fragt: "Login erlauben?" → OK</div>
|
||||
</div>
|
||||
<div class="eu-step">
|
||||
<div class="eu-step-num">4</div>
|
||||
<div class="eu-step-body"><strong>Eingeloggt.</strong></div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</section>
|
||||
|
||||
<!-- =========================================================
|
||||
SLIDE 11 — Was passiert im Hintergrund (vereinfacht)
|
||||
============================================================== -->
|
||||
<section data-background-color="#0A0A0B">
|
||||
<h2>Was passiert im <span class="orange">Hintergrund</span>?</h2>
|
||||
<p class="muted">Egal welcher Weg — immer dieselben 3 Schritte:</p>
|
||||
|
||||
<div class="eu-grid-3" style="margin-top: 0.6em;">
|
||||
<div class="eu-card-elevated">
|
||||
<div class="eu-feature-icon"><i class="fa-solid fa-1"></i></div>
|
||||
<div class="eu-feature-title">Frage</div>
|
||||
<div class="eu-feature-desc">
|
||||
Das Portal stellt dir eine Zufallsfrage — nur für dich.
|
||||
</div>
|
||||
</div>
|
||||
<div class="eu-card-elevated">
|
||||
<div class="eu-feature-icon"><i class="fa-solid fa-2"></i></div>
|
||||
<div class="eu-feature-title">Unterschrift</div>
|
||||
<div class="eu-feature-desc">
|
||||
Dein Gerät unterschreibt die Frage mit deinem Schlüssel.
|
||||
</div>
|
||||
</div>
|
||||
<div class="eu-card-elevated">
|
||||
<div class="eu-feature-icon"><i class="fa-solid fa-3"></i></div>
|
||||
<div class="eu-feature-title">Prüfung</div>
|
||||
<div class="eu-feature-desc">
|
||||
Das Portal prüft die Unterschrift — passt sie, bist du drin.
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<p class="small muted" style="margin-top: 1em; text-align: center;">
|
||||
<i class="fa-solid fa-shield-halved orange"></i>
|
||||
Dein Schlüssel verlässt nie dein Gerät.
|
||||
</p>
|
||||
</section>
|
||||
|
||||
<!-- =========================================================
|
||||
SLIDE 12 — Welche Methode?
|
||||
============================================================== -->
|
||||
<section data-background-color="#0A0A0B">
|
||||
<h2><span class="orange">Welche</span> Methode für mich?</h2>
|
||||
|
||||
<div class="eu-grid-2" style="margin-top: 0.6em;">
|
||||
<div class="eu-card">
|
||||
<span class="eu-badge">Browser-Extension</span>
|
||||
<p style="margin-top: 0.5em;"><strong>Am besten wenn…</strong></p>
|
||||
<ul>
|
||||
<li>Du das Portal am Rechner nutzt</li>
|
||||
<li>Du Alby ohnehin hast</li>
|
||||
<li>Du es schnell & einfach magst</li>
|
||||
</ul>
|
||||
</div>
|
||||
<div class="eu-card">
|
||||
<span class="eu-badge green">Amber-App</span>
|
||||
<p style="margin-top: 0.5em;"><strong>Am besten wenn…</strong></p>
|
||||
<ul>
|
||||
<li>Du am Handy unterwegs bist</li>
|
||||
<li>Du an wechselnden Rechnern arbeitest</li>
|
||||
<li>Dir maximale Sicherheit wichtig ist</li>
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
</section>
|
||||
|
||||
<!-- =========================================================
|
||||
SLIDE 13 — Live-Demo
|
||||
============================================================== -->
|
||||
<section data-background-color="#0A0A0B" style="text-align: center;">
|
||||
<img src="img/einundzwanzig-horizontal-inverted.svg" alt="Einundzwanzig Logo" style="max-width: 40%; margin-bottom: 1em;">
|
||||
<h1 style="font-size: 2em;">Jetzt: <span class="orange">Live-Demo</span></h1>
|
||||
<p class="muted" style="margin-top: 1em;">
|
||||
Wir öffnen das Portal und loggen uns ein.
|
||||
</p>
|
||||
</section>
|
||||
|
||||
<!-- =========================================================
|
||||
SLIDE 14 — Übergang: jetzt die Features
|
||||
============================================================== -->
|
||||
<section data-background-color="#0A0A0B" style="text-align: center;">
|
||||
<img src="img/einundzwanzig-horizontal-inverted.svg" alt="Einundzwanzig Logo" style="max-width: 40%; margin-bottom: 1em;">
|
||||
<h1 style="font-size: 2em;">Was steckt <span class="orange">drin</span>?</h1>
|
||||
<p class="muted" style="margin-top: 1em;">
|
||||
Ein Rundgang durch die Features des Portals.
|
||||
</p>
|
||||
</section>
|
||||
|
||||
<!-- =========================================================
|
||||
SLIDE 15 — Feature: News
|
||||
============================================================== -->
|
||||
<section data-background-color="#0A0A0B">
|
||||
<div class="eu-section-label">FEATURE 1 / 5</div>
|
||||
<h2 style="margin-top: 0;"><i class="fa-solid fa-newspaper orange"></i> News</h2>
|
||||
<p class="muted">Alle Vereins-Updates an einem Ort — nach Kategorien gefiltert.</p>
|
||||
|
||||
<div class="eu-app-frame" style="margin-top: 0.6em;">
|
||||
<div class="eu-app-frame-bar">
|
||||
<div class="eu-app-frame-dots">
|
||||
<span class="eu-app-frame-dot"></span>
|
||||
<span class="eu-app-frame-dot"></span>
|
||||
<span class="eu-app-frame-dot"></span>
|
||||
</div>
|
||||
<div class="eu-app-frame-url">einundzwanzig.space / association / news</div>
|
||||
</div>
|
||||
<div class="eu-app-frame-body">
|
||||
<div class="eu-app-h1">News</div>
|
||||
|
||||
<div class="eu-app-filter-row">
|
||||
<span class="eu-app-chip active">Alle</span>
|
||||
<span class="eu-app-chip">Vorstand</span>
|
||||
<span class="eu-app-chip">Projekte</span>
|
||||
<span class="eu-app-chip">Events</span>
|
||||
</div>
|
||||
|
||||
<div class="eu-app-list-item">
|
||||
<div class="icon"><i class="fa-solid fa-bullhorn"></i></div>
|
||||
<div class="body">
|
||||
<div class="title">Protokoll der Mitgliederversammlung 2026</div>
|
||||
<div class="meta">Vorstand · vor 2 Tagen · PDF</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="eu-app-list-item">
|
||||
<div class="icon"><i class="fa-solid fa-rocket"></i></div>
|
||||
<div class="body">
|
||||
<div class="title">Neues Förderprojekt freigegeben</div>
|
||||
<div class="meta">Projekte · vor 1 Woche</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="eu-app-list-item">
|
||||
<div class="icon"><i class="fa-solid fa-calendar"></i></div>
|
||||
<div class="body">
|
||||
<div class="title">Save the Date: Sommercamp 2026</div>
|
||||
<div class="meta">Events · vor 2 Wochen</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</section>
|
||||
|
||||
<!-- =========================================================
|
||||
SLIDE 16 — Feature: Mein Mitgliederstatus / Profil
|
||||
============================================================== -->
|
||||
<section data-background-color="#0A0A0B">
|
||||
<div class="eu-section-label">FEATURE 2 / 5</div>
|
||||
<h2 style="margin-top: 0;"><i class="fa-solid fa-id-card orange"></i> Mein Mitgliederstatus</h2>
|
||||
<p class="muted">Profil sehen und Mitgliedsbeitrag mit Lightning bezahlen — direkt im Portal.</p>
|
||||
|
||||
<div class="eu-app-frame" style="margin-top: 0.6em;">
|
||||
<div class="eu-app-frame-bar">
|
||||
<div class="eu-app-frame-dots">
|
||||
<span class="eu-app-frame-dot"></span>
|
||||
<span class="eu-app-frame-dot"></span>
|
||||
<span class="eu-app-frame-dot"></span>
|
||||
</div>
|
||||
<div class="eu-app-frame-url">einundzwanzig.space / association / profile</div>
|
||||
</div>
|
||||
<div class="eu-app-frame-body">
|
||||
<div style="display: flex; gap: 1em; align-items: center; margin-bottom: 0.8em;">
|
||||
<div style="width: 3em; height: 3em; border-radius: 999px; background: var(--eu-bg-elevated); border: 1px solid var(--eu-border-default); display: flex; align-items: center; justify-content: center; font-size: 1.4em;">
|
||||
<i class="fa-solid fa-user orange"></i>
|
||||
</div>
|
||||
<div>
|
||||
<div style="color: var(--eu-text-primary); font-weight: 700;">satoshi@einundzwanzig.space</div>
|
||||
<div style="color: var(--eu-text-tertiary); font-size: 0.85em;">Mitglied seit 2024</div>
|
||||
</div>
|
||||
<div style="margin-left: auto;">
|
||||
<span class="eu-app-status-badge green"><i class="fa-solid fa-check"></i> Aktiv</span>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="eu-app-list-item">
|
||||
<div class="icon"><i class="fa-solid fa-bolt"></i></div>
|
||||
<div class="body">
|
||||
<div class="title">Mitgliedsbeitrag 2026</div>
|
||||
<div class="meta">21 000 Sats · bezahlt am 14.01.2026</div>
|
||||
</div>
|
||||
<span class="eu-app-status-badge green">Bezahlt</span>
|
||||
</div>
|
||||
|
||||
<div class="eu-app-list-item">
|
||||
<div class="icon"><i class="fa-solid fa-receipt"></i></div>
|
||||
<div class="body">
|
||||
<div class="title">Beitrag 2027</div>
|
||||
<div class="meta">Bereit zur Zahlung — Rechnung erstellen</div>
|
||||
</div>
|
||||
<button class="eu-app-button"><i class="fa-solid fa-bolt"></i> Pay</button>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</section>
|
||||
|
||||
<!-- =========================================================
|
||||
SLIDE 17 — Feature: Vorteile
|
||||
============================================================== -->
|
||||
<section data-background-color="#0A0A0B">
|
||||
<div class="eu-section-label">FEATURE 3 / 5</div>
|
||||
<h2 style="margin-top: 0;"><i class="fa-solid fa-gift orange"></i> Vorteile deiner Mitgliedschaft</h2>
|
||||
<p class="muted">Drei exklusive Services, die nur Mitglieder freischalten können.</p>
|
||||
|
||||
<div class="eu-app-frame" style="margin-top: 0.6em;">
|
||||
<div class="eu-app-frame-bar">
|
||||
<div class="eu-app-frame-dots">
|
||||
<span class="eu-app-frame-dot"></span>
|
||||
<span class="eu-app-frame-dot"></span>
|
||||
<span class="eu-app-frame-dot"></span>
|
||||
</div>
|
||||
<div class="eu-app-frame-url">einundzwanzig.space / association / benefits</div>
|
||||
</div>
|
||||
<div class="eu-app-frame-body">
|
||||
<div class="eu-grid-3" style="gap: 0.6em;">
|
||||
<div class="eu-benefit-card amber">
|
||||
<div class="ico"><i class="fa-solid fa-bolt"></i></div>
|
||||
<div>
|
||||
<div class="title">Nostr Relay</div>
|
||||
<div class="desc">Schreib-Rechte auf dem Premium-Relay des Vereins.</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="eu-benefit-card emerald">
|
||||
<div class="ico"><i class="fa-solid fa-check-circle"></i></div>
|
||||
<div>
|
||||
<div class="title">NIP-05 Verifizierung</div>
|
||||
<div class="desc">Lesbarer Name: <span class="eu-code-inline">du@einundzwanzig.space</span></div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="eu-benefit-card violet">
|
||||
<div class="ico"><i class="fa-solid fa-tower-observation"></i></div>
|
||||
<div>
|
||||
<div class="title">Lightning Watchtower</div>
|
||||
<div class="desc">Schützt deine Lightning-Channels, wenn du offline bist.</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</section>
|
||||
|
||||
<!-- =========================================================
|
||||
SLIDE 18 — Feature: Projekt-Unterstützungen
|
||||
============================================================== -->
|
||||
<section data-background-color="#0A0A0B">
|
||||
<div class="eu-section-label">FEATURE 4 / 5</div>
|
||||
<h2 style="margin-top: 0;"><i class="fa-solid fa-heart orange"></i> Projekt-Unterstützungen</h2>
|
||||
<p class="muted">Projekte einreichen, prüfen und gemeinsam fördern.</p>
|
||||
|
||||
<div class="eu-app-frame" style="margin-top: 0.6em;">
|
||||
<div class="eu-app-frame-bar">
|
||||
<div class="eu-app-frame-dots">
|
||||
<span class="eu-app-frame-dot"></span>
|
||||
<span class="eu-app-frame-dot"></span>
|
||||
<span class="eu-app-frame-dot"></span>
|
||||
</div>
|
||||
<div class="eu-app-frame-url">einundzwanzig.space / association / project-support</div>
|
||||
</div>
|
||||
<div class="eu-app-frame-body">
|
||||
<div style="display: flex; align-items: center; justify-content: space-between; margin-bottom: 0.7em;">
|
||||
<div class="eu-app-filter-row" style="margin: 0;">
|
||||
<span class="eu-app-chip active">Alle</span>
|
||||
<span class="eu-app-chip">Neu</span>
|
||||
<span class="eu-app-chip">Unterstützt</span>
|
||||
</div>
|
||||
<button class="eu-app-button"><i class="fa-solid fa-plus"></i> Projekt einreichen</button>
|
||||
</div>
|
||||
|
||||
<div class="eu-app-list-item">
|
||||
<div class="icon"><i class="fa-solid fa-graduation-cap"></i></div>
|
||||
<div class="body">
|
||||
<div class="title">Bitcoin-Workshop für Schulen</div>
|
||||
<div class="meta">Eingereicht von Carla · 500 000 Sats benötigt</div>
|
||||
</div>
|
||||
<span class="eu-app-status-badge green">Unterstützt</span>
|
||||
</div>
|
||||
<div class="eu-app-list-item">
|
||||
<div class="icon"><i class="fa-solid fa-microphone"></i></div>
|
||||
<div class="body">
|
||||
<div class="title">Podcast-Equipment für Lokalgruppe</div>
|
||||
<div class="meta">Eingereicht von Tom · 250 000 Sats benötigt</div>
|
||||
</div>
|
||||
<span class="eu-app-status-badge orange">Neu</span>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</section>
|
||||
|
||||
<!-- =========================================================
|
||||
SLIDE 19 — Feature: Mitgliederverwaltung (Vorstand)
|
||||
============================================================== -->
|
||||
<section data-background-color="#0A0A0B">
|
||||
<div class="eu-section-label">FEATURE 5 / 5 — NUR VORSTAND</div>
|
||||
<h2 style="margin-top: 0;"><i class="fa-solid fa-users-gear orange"></i> Mitglieder verwalten</h2>
|
||||
<p class="muted">Überblick über alle Mitglieder, Beitragsstatus und Aufnahme‑Anträge.</p>
|
||||
|
||||
<div class="eu-app-frame" style="margin-top: 0.6em;">
|
||||
<div class="eu-app-frame-bar">
|
||||
<div class="eu-app-frame-dots">
|
||||
<span class="eu-app-frame-dot"></span>
|
||||
<span class="eu-app-frame-dot"></span>
|
||||
<span class="eu-app-frame-dot"></span>
|
||||
</div>
|
||||
<div class="eu-app-frame-url">einundzwanzig.space / association / members / admin</div>
|
||||
</div>
|
||||
<div class="eu-app-frame-body">
|
||||
<div class="eu-app-list-item">
|
||||
<div class="icon"><i class="fa-solid fa-user"></i></div>
|
||||
<div class="body">
|
||||
<div class="title">Alice</div>
|
||||
<div class="meta">alice@einundzwanzig.space · Beitrag 2026 bezahlt</div>
|
||||
</div>
|
||||
<span class="eu-app-status-badge green">Aktiv</span>
|
||||
</div>
|
||||
<div class="eu-app-list-item">
|
||||
<div class="icon"><i class="fa-solid fa-user"></i></div>
|
||||
<div class="body">
|
||||
<div class="title">Bob</div>
|
||||
<div class="meta">bob@einundzwanzig.space · Beitrag offen</div>
|
||||
</div>
|
||||
<span class="eu-app-status-badge orange">Erinnerung</span>
|
||||
</div>
|
||||
<div class="eu-app-list-item">
|
||||
<div class="icon"><i class="fa-solid fa-user-plus"></i></div>
|
||||
<div class="body">
|
||||
<div class="title">Carla</div>
|
||||
<div class="meta">Möchte <strong>aktives Mitglied</strong> werden — Bewerbung prüfen</div>
|
||||
</div>
|
||||
<button class="eu-app-button ghost">Aktives Mitglied werden</button>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</section>
|
||||
|
||||
<!-- =========================================================
|
||||
SLIDE 20 — Übergang: Beispiel Projekt einreichen
|
||||
============================================================== -->
|
||||
<section data-background-color="#0A0A0B" style="text-align: center;">
|
||||
<img src="img/einundzwanzig-horizontal-inverted.svg" alt="Einundzwanzig Logo" style="max-width: 35%; margin-bottom: 1em;">
|
||||
<h1 style="font-size: 1.8em;">Beispiel: <span class="orange">Projekt einreichen</span></h1>
|
||||
<p class="muted" style="margin-top: 1em;">
|
||||
In 3 Schritten zur eigenen Projekt‑Unterstützung.
|
||||
</p>
|
||||
<p class="small" style="margin-top: 0.6em;">
|
||||
<i class="fa-solid fa-wallet orange"></i> Echtes Beispiel aus dem Portal: <strong>Sparrow Wallet</strong>
|
||||
</p>
|
||||
</section>
|
||||
|
||||
<!-- =========================================================
|
||||
SLIDE 21 — Schritt 1: Liste mit "Projekt einreichen"
|
||||
============================================================== -->
|
||||
<section data-background-color="#0A0A0B">
|
||||
<div class="eu-section-label">SCHRITT 1 / 3</div>
|
||||
<h2 style="margin-top: 0;">Auf der Projekt‑Seite auf <span class="orange">"Projekt einreichen"</span> klicken</h2>
|
||||
|
||||
<div class="eu-app-frame" style="margin-top: 0.6em;">
|
||||
<div class="eu-app-frame-bar">
|
||||
<div class="eu-app-frame-dots">
|
||||
<span class="eu-app-frame-dot"></span>
|
||||
<span class="eu-app-frame-dot"></span>
|
||||
<span class="eu-app-frame-dot"></span>
|
||||
</div>
|
||||
<div class="eu-app-frame-url">verein.einundzwanzig.space / association / project-support</div>
|
||||
</div>
|
||||
<div class="eu-app-frame-body">
|
||||
<div style="display: flex; align-items: center; justify-content: space-between; margin-bottom: 0.7em;">
|
||||
<div class="eu-app-filter-row" style="margin: 0;">
|
||||
<span class="eu-app-chip active">Alle</span>
|
||||
<span class="eu-app-chip">Neu</span>
|
||||
<span class="eu-app-chip">Unterstützt</span>
|
||||
</div>
|
||||
<button class="eu-app-button eu-highlight-ring"><i class="fa-solid fa-plus"></i> Projekt einreichen</button>
|
||||
</div>
|
||||
|
||||
<div class="eu-app-list-item">
|
||||
<div class="icon"><i class="fa-solid fa-shield-halved"></i></div>
|
||||
<div class="body">
|
||||
<div class="title">Peer2Peer Rights Foundation</div>
|
||||
<div class="meta">Chris @ seedor_io · 10 000 000 Sats</div>
|
||||
</div>
|
||||
<span class="eu-app-status-badge green">Unterstützt</span>
|
||||
</div>
|
||||
<div class="eu-app-list-item">
|
||||
<div class="icon"><i class="fa-solid fa-microphone"></i></div>
|
||||
<div class="body">
|
||||
<div class="title">STANDUP</div>
|
||||
<div class="meta">DrShift · 5 500 000 Sats</div>
|
||||
</div>
|
||||
<span class="eu-app-status-badge green">Unterstützt</span>
|
||||
</div>
|
||||
<div class="eu-app-list-item">
|
||||
<div class="icon"><i class="fa-solid fa-people-group"></i></div>
|
||||
<div class="body">
|
||||
<div class="title">21Meetup</div>
|
||||
<div class="meta">M.W. · 2 500 000 Sats</div>
|
||||
</div>
|
||||
<span class="eu-app-status-badge orange">Neu</span>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</section>
|
||||
|
||||
<!-- =========================================================
|
||||
SLIDE 22 — Schritt 2: Formular ausfüllen
|
||||
============================================================== -->
|
||||
<section data-background-color="#0A0A0B">
|
||||
<div class="eu-section-label">SCHRITT 2 / 3</div>
|
||||
<h2 style="margin-top: 0;">Formular ausfüllen — <span class="orange">fertig in 30 Sekunden</span></h2>
|
||||
|
||||
<div class="eu-app-frame" style="margin-top: 0.5em;">
|
||||
<div class="eu-app-frame-bar">
|
||||
<div class="eu-app-frame-dots">
|
||||
<span class="eu-app-frame-dot"></span>
|
||||
<span class="eu-app-frame-dot"></span>
|
||||
<span class="eu-app-frame-dot"></span>
|
||||
</div>
|
||||
<div class="eu-app-frame-url">verein.einundzwanzig.space / project-support / create</div>
|
||||
</div>
|
||||
<div class="eu-app-frame-body" style="display: grid; grid-template-columns: 1.5fr 1fr; gap: 1em;">
|
||||
<div>
|
||||
<div class="eu-form-row">
|
||||
<label class="eu-form-label">Name</label>
|
||||
<div class="eu-form-input">Sparrow Wallet</div>
|
||||
</div>
|
||||
<div class="eu-form-row">
|
||||
<label class="eu-form-label">Website</label>
|
||||
<div class="eu-form-input">https://sparrowwallet.com</div>
|
||||
</div>
|
||||
<div class="eu-form-row">
|
||||
<label class="eu-form-label">Unterstützung (Sats)</label>
|
||||
<div class="eu-form-input">2 100 000</div>
|
||||
</div>
|
||||
<div class="eu-form-row">
|
||||
<label class="eu-form-label">Beschreibung</label>
|
||||
<div class="eu-form-textarea">Bitcoin‑only Desktop‑Wallet mit Fokus auf Bedienbarkeit. UTXO‑Verwaltung, Multi‑Sig, viel in Workshops genutzt.</div>
|
||||
</div>
|
||||
</div>
|
||||
<div>
|
||||
<div class="eu-form-row">
|
||||
<label class="eu-form-label">Bild</label>
|
||||
<div class="eu-form-dropzone">
|
||||
<i class="fa-solid fa-image" style="font-size: 1.4em; color: var(--eu-orange);"></i>
|
||||
<div style="margin-top: 0.3em;">Bild ablegen oder klicken</div>
|
||||
</div>
|
||||
</div>
|
||||
<button class="eu-app-button eu-highlight-ring" style="width: 100%; justify-content: center; margin-top: 0.6em;">
|
||||
<i class="fa-solid fa-paper-plane"></i> Speichern
|
||||
</button>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</section>
|
||||
|
||||
<!-- =========================================================
|
||||
SLIDE 23 — Schritt 3: Eingereicht & zur Abstimmung
|
||||
============================================================== -->
|
||||
<section data-background-color="#0A0A0B">
|
||||
<div class="eu-section-label">SCHRITT 3 / 3</div>
|
||||
<h2 style="margin-top: 0;">Eingereicht — jetzt <span class="orange">stimmt die Community ab</span></h2>
|
||||
|
||||
<div class="eu-app-frame" style="margin-top: 0.5em;">
|
||||
<div class="eu-app-frame-bar">
|
||||
<div class="eu-app-frame-dots">
|
||||
<span class="eu-app-frame-dot"></span>
|
||||
<span class="eu-app-frame-dot"></span>
|
||||
<span class="eu-app-frame-dot"></span>
|
||||
</div>
|
||||
<div class="eu-app-frame-url">verein.einundzwanzig.space / project-support / sparrow-wallet</div>
|
||||
</div>
|
||||
<div class="eu-app-frame-body" style="display: grid; grid-template-columns: 1.6fr 1fr; gap: 1em;">
|
||||
<div>
|
||||
<div style="color: var(--eu-purple-accent); font-weight: 700; font-size: 0.8em; text-transform: uppercase; margin-bottom: 0.2em;">22.12.2024</div>
|
||||
<div style="color: var(--eu-text-primary); font-weight: 700; font-size: 1.3em; margin-bottom: 0.4em;">Sparrow Wallet</div>
|
||||
<p class="muted small" style="margin-top: 0;">
|
||||
Bitcoin‑only Desktop‑Wallet mit UTXO‑Verwaltung und Multi‑Sig.
|
||||
</p>
|
||||
<div style="display: flex; gap: 0.5em; align-items: center; margin-top: 0.6em;">
|
||||
<span style="background: rgba(34, 197, 94, 0.15); color: var(--eu-green-success); font-size: 0.75em; font-weight: 700; padding: 0.2em 0.7em; border-radius: 999px; text-transform: uppercase;">
|
||||
2 100 000 Sats
|
||||
</span>
|
||||
<span class="eu-tag">sparrowwallet.com</span>
|
||||
</div>
|
||||
<div class="muted small" style="margin-top: 0.6em;">
|
||||
Eingereicht von <strong style="color: var(--eu-text-primary);">gmblr247</strong>
|
||||
</div>
|
||||
</div>
|
||||
<div>
|
||||
<div style="color: var(--eu-text-secondary); font-size: 0.75em; font-weight: 700; margin-bottom: 0.3em;">ABSTIMMUNG</div>
|
||||
<div class="eu-vote-card">
|
||||
<span><i class="fa-solid fa-thumbs-up" style="color: var(--eu-green-success);"></i> Vorstand</span>
|
||||
<span class="num">5</span>
|
||||
</div>
|
||||
<div class="eu-vote-card">
|
||||
<span><i class="fa-solid fa-thumbs-up" style="color: var(--eu-green-success);"></i> Mitglieder</span>
|
||||
<span class="num">8</span>
|
||||
</div>
|
||||
<button class="eu-app-button" style="width: 100%; justify-content: center; margin-top: 0.5em;">
|
||||
<i class="fa-solid fa-thumbs-up"></i> Zustimmen
|
||||
</button>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</section>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<!-- Reveal.js Scripts -->
|
||||
<script src="https://cdn.jsdelivr.net/npm/reveal.js@5.1.0/dist/reveal.js"></script>
|
||||
<script src="https://cdn.jsdelivr.net/npm/reveal.js@5.1.0/plugin/notes/notes.js"></script>
|
||||
<script src="https://cdn.jsdelivr.net/npm/reveal.js@5.1.0/plugin/highlight/highlight.js"></script>
|
||||
|
||||
<script>
|
||||
Reveal.initialize({
|
||||
hash: true,
|
||||
slideNumber: 'c/t',
|
||||
controls: true,
|
||||
progress: true,
|
||||
transition: 'slide',
|
||||
transitionSpeed: 'default',
|
||||
backgroundTransition: 'fade',
|
||||
width: 1280,
|
||||
height: 800,
|
||||
margin: 0.04,
|
||||
center: true,
|
||||
plugins: [RevealNotes, RevealHighlight],
|
||||
});
|
||||
</script>
|
||||
</body>
|
||||
</html>
|
||||
Reference in New Issue
Block a user