Themabewertung:
  • 0 Bewertung(en) - 0 im Durchschnitt
  • 1
  • 2
  • 3
  • 4
  • 5
OpenSim.Webinterface
#24
Das Astro 5.5 Web Framework
Astro ist ein modernes Web-Framework, das sich auf die Erstellung von schnellen, statischen Websites konzentriert.
Es verwendet keine traditionellen CSS-Frameworks wie Bootstrap, sondern setzt auf moderne Web-Standards und ermöglicht die Integration von verschiedenen UI-Bibliotheken.

1. Astro-Projekt erstellen
Zuerst musst du ein neues Astro-Projekt erstellen. Führe dazu die folgenden Befehle aus:

bash
Code:
npm create astro@latest
cd dein-projekt
npm install


2. Astro-Komponenten erstellen
Erstelle eine neue Astro-Komponente für deine Seite, z.B. `src/pages/index.astro`.

3. Angepasster Code für Astro
Hier ist der angepasste Code für deine Seite in Astro:

astro
---
PHP-Code:
import '../styles/global.css';

const 
title 'Deine Seite';
const 
SITE_NAME 'Deine Seite';
const 
FONT_FAMILY 'Arial, sans-serif';
const 
BACKGROUND_IMAGE '/images/background.jpg';
const 
FOREGROUND_IMAGE '/images/foreground.png';
const 
BACKGROUND_OPACITY 0.9;
const 
FOREGROUND_OPACITY 0.8;
const 
INITIAL_COLOR_SCHEME 'default';

const 
colorSchemes = {
    default: {
        
header'#007bff',
        
footer'#343a40',
        
secondary'#f8f9fa',
        
primary'#212529'
    
},
    
dark: {
        
header'#343a40',
        
footer'#212529',
        
secondary'#121212',
        
primary'#ffffff'
    
}
};

function 
setColorScheme(scheme) {
    
document.documentElement.style.setProperty('--header-color'colorSchemes[scheme].header);
    
document.documentElement.style.setProperty('--footer-color'colorSchemes[scheme].footer);
    
document.documentElement.style.setProperty('--secondary-color'colorSchemes[scheme].secondary);
    
document.documentElement.style.setProperty('--primary-color'colorSchemes[scheme].primary);
}
---

<!
DOCTYPE html>
<
html lang="de">
<
head>
    <
meta charset="UTF-8">
    <
meta name="viewport" content="width=device-width, initial-scale=1">
    <
title>{title}</title>
    <
link rel="icon" type="image/x-icon" href="/favicon.ico">
    <
style>
        
body {
            
font-family: {FONT_FAMILY};
            
background-color: var(--secondary-color);
            
color: var(--primary-color);
            
background-imageurl({BACKGROUND_IMAGE});
            
background-sizecover;
            
background-repeatno-repeat;
            
background-positioncenter;
            
height100vh;
            
width100vw;
            
opacity: {BACKGROUND_OPACITY};
        }
        
header {
            
background-color: var(--header-color);
            
padding10px;
            
text-aligncenter;
            
colorwhite;
        }
        
footer {
            
background-color: var(--footer-color);
            
margin0;
            
padding0;
            
text-aligncenter;
            
colorwhite;
            
positionfixed;
            
width100%;
            
bottom0;
            
line-height0;
        }
        .
container {
            
background-imageurl({FOREGROUND_IMAGE});
            
background-size50%;
            
background-repeatno-repeat;
            
background-positioncenter;
            
padding20px;
            
border-radius8px;
            
opacity: {FOREGROUND_OPACITY};
        }
        .
color-button {
            
margin1px;
            
padding1px;
            
bordernone;
            
cursorpointer;
            
border-radius4px;
            
font-size10px;
            
colorwhite;
        }
    </
style>
    <
script>
        const 
colorSchemes = {JSON.stringify(colorSchemes)};

        function 
setColorScheme(scheme) {
            
document.documentElement.style.setProperty('--header-color'colorSchemes[scheme].header);
            
document.documentElement.style.setProperty('--footer-color'colorSchemes[scheme].footer);
            
document.documentElement.style.setProperty('--secondary-color'colorSchemes[scheme].secondary);
            
document.documentElement.style.setProperty('--primary-color'colorSchemes[scheme].primary);
        }

        
document.addEventListener('DOMContentLoaded', function() {
            
document.querySelectorAll('.color-button').forEach(function(button) {
                
button.addEventListener('click', function() {
                    
setColorScheme(this.dataset.scheme);
                });
            });
            
// Set the initial color scheme
            
setColorScheme('{INITIAL_COLOR_SCHEME}');
        });
    </
script>
</
head>
<
body>
<
header class="bg-primary text-white p-3">
    <
h1>Welcome to {SITE_NAME}</h1>
</
header>
<
nav class="navbar navbar-expand-lg navbar-dark bg-dark">
    <
div class="container-fluid">
        <
class="navbar-brand" href="/">{SITE_NAME}</a>
        <
div class="collapse navbar-collapse" id="navbarNav">
            <
ul class="navbar-nav">
                {
Object.entries(colorSchemes).map(([schemecolors]) => (
                    <
li class="nav-item">
                        <
button class="btn btn-sm btn-secondary color-button" data-scheme={schemestyle={`background-color: ${colors.header};`}>{scheme.charAt(0).toUpperCase() + scheme.slice(1)}</button>
                    </
li>
                ))}
            </
ul>
        </
div>
    </
div>
</
nav>
<
div class="container mt-5">
    <!-- 
Inhalt der Seite -->
</
div>
<
footer class="bg-dark text-white text-center py-3">
    &
copy; {new Date().getFullYear()} {SITE_NAME}
</
footer>
</
body>
</
html


### 4. Globale CSS-Datei
Erstelle eine globale CSS-Datei `src/styles/global.css`, um die CSS-Variablen zu definieren:

css
Code:
:root {
    --header-color: #007bff;
    --footer-color: #343a40;
    --secondary-color: #f8f9fa;
    --primary-color: #212529;
}


5. Bilder hinzufügen
Lege die Bilder `background.jpg` und `foreground.png` in den `public/images`-Ordner.

6. Astro-Projekt starten
Starte das Astro-Projekt mit:

bash
Code:
npm run dev


Erläuterungen:
- Astro-Komponenten: Astro verwendet `.astro`-Dateien, die eine Mischung aus HTML, CSS und JavaScript sind.
- CSS-Variablen: Wir verwenden CSS-Variablen, um die Farben dynamisch zu ändern.
- JavaScript: Das JavaScript wird direkt in der Astro-Komponente eingebettet, um die Farben zu ändern.
Ein Metaversum sind viele kleine Räume, die nahtlos aneinander passen,
sowie direkt sichtbar und begehbar sind, als wäre es aus einem Guss.



[-] The following 1 user says Thank You to Manfred Aabye for this post:
  • Bogus Curry
Zitieren


Nachrichten in diesem Thema
OpenSim.Webinterface - von Manfred Aabye - 09.02.2025, 11:59
RE: OpenSim.Webinterface - von Manfred Aabye - 10.02.2025, 20:16
RE: OpenSim.Webinterface - von Manfred Aabye - 11.02.2025, 15:19
RE: OpenSim.Webinterface - von Bogus Curry - 12.02.2025, 00:30
RE: OpenSim.Webinterface - von Manfred Aabye - 12.02.2025, 16:02
RE: OpenSim.Webinterface - von Manfred Aabye - 12.02.2025, 16:12
RE: OpenSim.Webinterface - von Bogus Curry - 12.02.2025, 17:25
RE: OpenSim.Webinterface - von Manfred Aabye - 15.02.2025, 13:08
RE: OpenSim.Webinterface - von Manfred Aabye - 16.02.2025, 19:35
RE: OpenSim.Webinterface - von Bogus Curry - 17.02.2025, 00:04
RE: OpenSim.Webinterface - von Manfred Aabye - 17.02.2025, 22:40
RE: OpenSim.Webinterface - von Manfred Aabye - 20.02.2025, 23:17
RE: OpenSim.Webinterface - von Bogus Curry - 21.02.2025, 10:01
RE: OpenSim.Webinterface - von Manfred Aabye - 22.02.2025, 14:13
RE: OpenSim.Webinterface - von Manfred Aabye - 23.02.2025, 13:55
RE: OpenSim.Webinterface - von Manfred Aabye - 24.02.2025, 12:05
RE: OpenSim.Webinterface - von Manfred Aabye - 26.02.2025, 16:35
RE: OpenSim.Webinterface - von Manfred Aabye - 12.03.2025, 16:07
RE: OpenSim.Webinterface - von Manfred Aabye - 14.03.2025, 13:07
RE: OpenSim.Webinterface - von Bogus Curry - 14.03.2025, 13:18
RE: OpenSim.Webinterface - von Manfred Aabye - 14.03.2025, 14:41
RE: OpenSim.Webinterface - von Bogus Curry - 14.03.2025, 23:51
RE: OpenSim.Webinterface - von Manfred Aabye - 15.03.2025, 14:00
RE: OpenSim.Webinterface - von Manfred Aabye - 15.03.2025, 14:20
RE: OpenSim.Webinterface - von Bogus Curry - 15.03.2025, 19:51
RE: OpenSim.Webinterface - von Manfred Aabye - 24.03.2025, 12:16

Möglicherweise verwandte Themen…
Thema Verfasser Antworten Ansichten Letzter Beitrag
  opensim-baby kommt mit den grids nicht klar (manchmal) Nightshade Ceres 8 330 16.04.2025, 21:37
Letzter Beitrag: Anachron
  OpenSim RemoteAdmin 2025 Webinterface Manfred Aabye 1 385 01.02.2025, 15:34
Letzter Beitrag: Manfred Aabye

Gehe zu:


Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste