Initial commit: Teilzeitladen WordPress Theme
- Custom Theme mit WooCommerce Support - Responsive Design - Notice Banner (Admin-gesteuert) - Google Fonts Integration - Platz für Unikate-Präsentation Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
49
.gitignore
vendored
Normal file
49
.gitignore
vendored
Normal file
@@ -0,0 +1,49 @@
|
|||||||
|
# WordPress Core (wird nicht benötigt)
|
||||||
|
/wp-admin/
|
||||||
|
/wp-content/uploads/
|
||||||
|
/wp-includes/
|
||||||
|
/wp-*.php
|
||||||
|
/index.php
|
||||||
|
/license.txt
|
||||||
|
/readme.html
|
||||||
|
/xmlrpc.php
|
||||||
|
|
||||||
|
# Config mit Secrets
|
||||||
|
wp-config.php
|
||||||
|
|
||||||
|
# Logs
|
||||||
|
*.log
|
||||||
|
error_log
|
||||||
|
access_log
|
||||||
|
|
||||||
|
# OS Files
|
||||||
|
.DS_Store
|
||||||
|
Thumbs.db
|
||||||
|
|
||||||
|
# IDE
|
||||||
|
.vscode/
|
||||||
|
.idea/
|
||||||
|
*.swp
|
||||||
|
*.swo
|
||||||
|
|
||||||
|
# Dependencies
|
||||||
|
node_modules/
|
||||||
|
vendor/
|
||||||
|
|
||||||
|
# Uploads (wir nutzen diese nicht im Repo)
|
||||||
|
wp-content/uploads/*
|
||||||
|
|
||||||
|
# Cache
|
||||||
|
wp-content/cache/*
|
||||||
|
wp-content/upgrade/
|
||||||
|
wp-content/backup-db/
|
||||||
|
wp-content/advanced-cache.php
|
||||||
|
wp-content/wp-cache-config.php
|
||||||
|
|
||||||
|
# Plugins (werden separat gemanagt)
|
||||||
|
wp-content/plugins/*
|
||||||
|
!wp-content/plugins/custom/
|
||||||
|
|
||||||
|
# Themes (nur unser Theme)
|
||||||
|
wp-content/themes/*
|
||||||
|
!wp-content/themes/teilzeitladen-theme/
|
||||||
48
README.md
Normal file
48
README.md
Normal file
@@ -0,0 +1,48 @@
|
|||||||
|
# Teilzeitladen Webshop
|
||||||
|
|
||||||
|
Handgemachte Unikate - Blumentexte mit coolen Sprüchen und Figuren aus Bastelbeton.
|
||||||
|
|
||||||
|
## 🎨 Projekt
|
||||||
|
|
||||||
|
- **URL**: https://my.teilzeitladen.xyz
|
||||||
|
- **Stack**: WordPress + WooCommerce + Billbee
|
||||||
|
- **Hosting**: Hostinger
|
||||||
|
- **Git**: Gitea (christoph/teilzeitladen-webshop)
|
||||||
|
|
||||||
|
## 📁 Struktur
|
||||||
|
|
||||||
|
```
|
||||||
|
wp-content/themes/teilzeitladen-theme/
|
||||||
|
├── style.css # Theme Styles
|
||||||
|
├── functions.php # Theme Functions
|
||||||
|
├── index.php # Blog-Übersicht
|
||||||
|
├── header.php # Header Template
|
||||||
|
├── footer.php # Footer Template
|
||||||
|
├── css/ # Zusätzliche CSS
|
||||||
|
├── js/ # JavaScript
|
||||||
|
├── img/ # Theme-Bilder
|
||||||
|
└── template-parts/ # Template-Teile
|
||||||
|
```
|
||||||
|
|
||||||
|
## 🚀 Deployment
|
||||||
|
|
||||||
|
1. Änderungen entwickeln
|
||||||
|
2. `git commit -am "Beschreibung"`
|
||||||
|
3. `git push origin main`
|
||||||
|
4. Auf Hostinger via FTP oder Git-Deploy
|
||||||
|
|
||||||
|
## 🎨 Theme Features
|
||||||
|
|
||||||
|
- Responsive Design
|
||||||
|
- WooCommerce Integration
|
||||||
|
- Custom Notice Banner (Admin-gesteuert)
|
||||||
|
- Google Fonts (Playfair Display + Open Sans)
|
||||||
|
- SEO-optimiert
|
||||||
|
|
||||||
|
## 📋 Todo
|
||||||
|
|
||||||
|
- [ ] Frontpage Template erstellen
|
||||||
|
- [ ] WooCommerce Template Overrides
|
||||||
|
- [ ] Produkte importieren
|
||||||
|
- [ ] Bilder optimieren
|
||||||
|
- [ ] SEO-Texte schreiben
|
||||||
20
setup-gitea-repo.sh
Executable file
20
setup-gitea-repo.sh
Executable file
@@ -0,0 +1,20 @@
|
|||||||
|
#!/bin/bash
|
||||||
|
# Gitea Repository Setup - Manuelle Schritte
|
||||||
|
|
||||||
|
echo "=== Gitea Repo 'teilzeitladen-webshop' erstellen ==="
|
||||||
|
echo ""
|
||||||
|
echo "1. Browser öffnen: http://10.40.41.149:3000/repo/create"
|
||||||
|
echo ""
|
||||||
|
echo "2. Formular ausfüllen:"
|
||||||
|
echo " - Repository Name: teilzeitladen-webshop"
|
||||||
|
echo " - Description: WordPress Theme und Custom Code"
|
||||||
|
echo " - Visibility: Public"
|
||||||
|
echo " - README: ✅ initialisieren"
|
||||||
|
echo " - .gitignore: WordPress"
|
||||||
|
echo ""
|
||||||
|
echo "3. Lokales Repo initialisieren:"
|
||||||
|
echo " cd ~/homelab/teilzeitladen-webshop-dev"
|
||||||
|
echo " git remote add origin http://10.40.41.149:3000/christoph/teilzeitladen-webshop.git"
|
||||||
|
echo " git add ."
|
||||||
|
echo " git commit -m 'Initial commit'"
|
||||||
|
echo " git push -u origin main"
|
||||||
19
setup-wordpress.sh
Executable file
19
setup-wordpress.sh
Executable file
@@ -0,0 +1,19 @@
|
|||||||
|
#!/bin/bash
|
||||||
|
# WordPress Setup für Teilzeitladen
|
||||||
|
# Ausführen auf Hostinger via SSH
|
||||||
|
|
||||||
|
echo "=== WordPress Installation auf my.teilzeitladen.xyz ==="
|
||||||
|
echo ""
|
||||||
|
echo "Dieses Skript muss auf dem Hostinger-Server ausgeführt werden:"
|
||||||
|
echo "ssh u250441928@premium188.web-hosting.com"
|
||||||
|
echo ""
|
||||||
|
echo "ODER via Hostinger hPanel:"
|
||||||
|
echo "1. https://hpanel.hostinger.com"
|
||||||
|
echo "2. Websites → Auto-Installer"
|
||||||
|
echo "3. WordPress auswählen"
|
||||||
|
echo "4. Domain: my.teilzeitladen.xyz"
|
||||||
|
echo ""
|
||||||
|
echo "Nach Installation:"
|
||||||
|
echo "- Admin URL: https://my.teilzeitladen.xyz/wp-admin"
|
||||||
|
echo "- Plugins installieren: WooCommerce"
|
||||||
|
echo "- Theme: Custom Theme aus Gitea-Repo"
|
||||||
55
wp-content/themes/teilzeitladen-theme/footer.php
Normal file
55
wp-content/themes/teilzeitladen-theme/footer.php
Normal file
@@ -0,0 +1,55 @@
|
|||||||
|
<?php
|
||||||
|
/**
|
||||||
|
* The footer template
|
||||||
|
*
|
||||||
|
* @package Teilzeitladen
|
||||||
|
*/
|
||||||
|
|
||||||
|
?\>
|
||||||
|
|
||||||
|
</footer> <!-- site-content -->
|
||||||
|
|
||||||
|
<footer class="site-footer">
|
||||||
|
<div class="container">
|
||||||
|
<div class="footer-widgets">
|
||||||
|
<div class="footer-widget">
|
||||||
|
<h3><?php _e( 'Teilzeitladen', 'teilzeitladen' ); ?\></h3>
|
||||||
|
<p>
|
||||||
|
<?php _e( 'Handgemachte Unikate mit Liebe. Jedes Stück einzigartig.', 'teilzeitladen' ); ?\>
|
||||||
|
</p>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="footer-widget">
|
||||||
|
<h3><?php _e( 'Kontakt', 'teilzeitladen' ); ?\></h3>
|
||||||
|
<?php if ( get_theme_mod( 'teilzeitladen_address' ) ) : ?\>
|
||||||
|
<p><?php echo nl2br( esc_html( get_theme_mod( 'teilzeitladen_address' ) ) ); ?\></p>
|
||||||
|
<?php endif; ?\>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="footer-widget">
|
||||||
|
<h3><?php _e( 'Rechtliches', 'teilzeitladen' ); ?\></h3>
|
||||||
|
<nav class="footer-navigation">
|
||||||
|
<?php
|
||||||
|
wp_nav_menu( array(
|
||||||
|
'theme_location' => 'footer',
|
||||||
|
'menu_id' => 'footer-menu',
|
||||||
|
'container' => false,
|
||||||
|
) );
|
||||||
|
?\>
|
||||||
|
</nav>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="footer-bottom">
|
||||||
|
<p>
|
||||||
|
<?php echo date( 'Y' ); ?\> <?php bloginfo( 'name' ); ?\> |
|
||||||
|
<?php _e( 'Mit ❤️ handgemacht', 'teilzeitladen' ); ?\>
|
||||||
|
</p>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</footer>
|
||||||
|
|
||||||
|
<?php wp_footer(); ?\>
|
||||||
|
|
||||||
|
</body>
|
||||||
|
</html>
|
||||||
166
wp-content/themes/teilzeitladen-theme/functions.php
Normal file
166
wp-content/themes/teilzeitladen-theme/functions.php
Normal file
@@ -0,0 +1,166 @@
|
|||||||
|
<?php
|
||||||
|
/**
|
||||||
|
* Teilzeitladen Theme Functions
|
||||||
|
*
|
||||||
|
* @package Teilzeitladen
|
||||||
|
*/
|
||||||
|
|
||||||
|
// Prevent direct access
|
||||||
|
if ( ! defined( 'ABSPATH' ) ) {
|
||||||
|
exit;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Theme version
|
||||||
|
*/
|
||||||
|
define( 'TEILZEITLADEN_VERSION', '1.0.0' );
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Enqueue scripts and styles
|
||||||
|
*/
|
||||||
|
function teilzeitladen_scripts() {
|
||||||
|
// Google Fonts
|
||||||
|
wp_enqueue_style(
|
||||||
|
'teilzeitladen-fonts',
|
||||||
|
'https://fonts.googleapis.com/css2?family=Open+Sans:wght@400;600&family=Playfair+Display:wght@400;600&display=swap',
|
||||||
|
array(),
|
||||||
|
null
|
||||||
|
);
|
||||||
|
|
||||||
|
// Theme stylesheet
|
||||||
|
wp_enqueue_style(
|
||||||
|
'teilzeitladen-style',
|
||||||
|
get_stylesheet_uri(),
|
||||||
|
array(),
|
||||||
|
TEILZEITLADEN_VERSION
|
||||||
|
);
|
||||||
|
|
||||||
|
// Custom scripts
|
||||||
|
wp_enqueue_script(
|
||||||
|
'teilzeitladen-scripts',
|
||||||
|
get_template_directory_uri() . '/js/main.js',
|
||||||
|
array('jquery'),
|
||||||
|
TEILZEITLADEN_VERSION,
|
||||||
|
true
|
||||||
|
);
|
||||||
|
}
|
||||||
|
add_action( 'wp_enqueue_scripts', 'teilzeitladen_scripts' );
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Theme setup
|
||||||
|
*/
|
||||||
|
function teilzeitladen_setup() {
|
||||||
|
// Add theme support
|
||||||
|
add_theme_support( 'title-tag' );
|
||||||
|
add_theme_support( 'post-thumbnails' );
|
||||||
|
add_theme_support( 'woocommerce' );
|
||||||
|
add_theme_support( 'html5', array( 'search-form', 'comment-form', 'comment-list', 'gallery', 'caption' ) );
|
||||||
|
|
||||||
|
// Register menus
|
||||||
|
register_nav_menus( array(
|
||||||
|
'primary' => __( 'Primary Menu', 'teilzeitladen' ),
|
||||||
|
'footer' => __( 'Footer Menu', 'teilzeitladen' ),
|
||||||
|
) );
|
||||||
|
|
||||||
|
// Image sizes
|
||||||
|
add_image_size( 'product-card', 400, 400, true );
|
||||||
|
add_image_size( 'hero', 1920, 600, true );
|
||||||
|
}
|
||||||
|
add_action( 'after_setup_theme', 'teilzeitladen_setup' );
|
||||||
|
|
||||||
|
/**
|
||||||
|
* WooCommerce support
|
||||||
|
*/
|
||||||
|
function teilzeitladen_woocommerce_setup() {
|
||||||
|
add_theme_support( 'woocommerce' );
|
||||||
|
add_theme_support( 'wc-product-gallery-zoom' );
|
||||||
|
add_theme_support( 'wc-product-gallery-lightbox' );
|
||||||
|
add_theme_support( 'wc-product-gallery-slider' );
|
||||||
|
}
|
||||||
|
add_action( 'after_setup_theme', 'teilzeitladen_woocommerce_setup' );
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Custom excerpt length
|
||||||
|
*/
|
||||||
|
function teilzeitladen_excerpt_length( $length ) {
|
||||||
|
return 20;
|
||||||
|
}
|
||||||
|
add_filter( 'excerpt_length', 'teilzeitladen_excerpt_length', 999 );
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Notice Banner (Admin controlled)
|
||||||
|
*/
|
||||||
|
function teilzeitladen_notice_banner() {
|
||||||
|
$notice_text = get_theme_mod( 'teilzeitladen_notice_text', '' );
|
||||||
|
$notice_link = get_theme_mod( 'teilzeitladen_notice_link', '' );
|
||||||
|
$notice_enabled = get_theme_mod( 'teilzeitladen_notice_enabled', false );
|
||||||
|
|
||||||
|
if ( $notice_enabled && ! empty( $notice_text ) ) :
|
||||||
|
?>
|
||||||
|
<div class="notice-banner">
|
||||||
|
<div class="container">
|
||||||
|
<?php if ( ! empty( $notice_link ) ) : ?>
|
||||||
|
<a href="<?php echo esc_url( $notice_link ); ?>"><?php echo esc_html( $notice_text ); ?></a>
|
||||||
|
<?php else : ?>
|
||||||
|
<?php echo esc_html( $notice_text ); ?>
|
||||||
|
<?php endif; ?>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<?php
|
||||||
|
endif;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Customizer settings
|
||||||
|
*/
|
||||||
|
function teilzeitladen_customize_register( $wp_customize ) {
|
||||||
|
// Notice Banner Section
|
||||||
|
$wp_customize->add_section( 'teilzeitladen_notice', array(
|
||||||
|
'title' => __( 'Notice Banner', 'teilzeitladen' ),
|
||||||
|
'priority' => 30,
|
||||||
|
) );
|
||||||
|
|
||||||
|
$wp_customize->add_setting( 'teilzeitladen_notice_enabled', array(
|
||||||
|
'default' => false,
|
||||||
|
'sanitize_callback' => 'wp_validate_boolean',
|
||||||
|
) );
|
||||||
|
|
||||||
|
$wp_customize->add_control( 'teilzeitladen_notice_enabled', array(
|
||||||
|
'label' => __( 'Enable Notice Banner', 'teilzeitladen' ),
|
||||||
|
'section' => 'teilzeitladen_notice',
|
||||||
|
'type' => 'checkbox',
|
||||||
|
) );
|
||||||
|
|
||||||
|
$wp_customize->add_setting( 'teilzeitladen_notice_text', array(
|
||||||
|
'default' => '',
|
||||||
|
'sanitize_callback' => 'sanitize_text_field',
|
||||||
|
) );
|
||||||
|
|
||||||
|
$wp_customize->add_control( 'teilzeitladen_notice_text', array(
|
||||||
|
'label' => __( 'Notice Text', 'teilzeitladen' ),
|
||||||
|
'section' => 'teilzeitladen_notice',
|
||||||
|
'type' => 'text',
|
||||||
|
) );
|
||||||
|
|
||||||
|
$wp_customize->add_setting( 'teilzeitladen_notice_link', array(
|
||||||
|
'default' => '',
|
||||||
|
'sanitize_callback' => 'esc_url_raw',
|
||||||
|
) );
|
||||||
|
|
||||||
|
$wp_customize->add_control( 'teilzeitladen_notice_link', array(
|
||||||
|
'label' => __( 'Notice Link (optional)', 'teilzeitladen' ),
|
||||||
|
'section' => 'teilzeitladen_notice',
|
||||||
|
'type' => 'url',
|
||||||
|
) );
|
||||||
|
}
|
||||||
|
add_action( 'customize_register', 'teilzeitladen_customize_register' );
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Disable admin bar for non-admins
|
||||||
|
*/
|
||||||
|
function teilzeitladen_disable_admin_bar() {
|
||||||
|
if ( ! current_user_can( 'administrator' ) && ! is_admin() ) {
|
||||||
|
show_admin_bar( false );
|
||||||
|
}
|
||||||
|
}
|
||||||
|
add_action( 'after_setup_theme', 'teilzeitladen_disable_admin_bar' );
|
||||||
65
wp-content/themes/teilzeitladen-theme/header.php
Normal file
65
wp-content/themes/teilzeitladen-theme/header.php
Normal file
@@ -0,0 +1,65 @@
|
|||||||
|
<?php
|
||||||
|
/**
|
||||||
|
* The header template
|
||||||
|
*
|
||||||
|
* @package Teilzeitladen
|
||||||
|
*/
|
||||||
|
|
||||||
|
?\>
|
||||||
|
<!DOCTYPE html>
|
||||||
|
<html <?php language_attributes(); ?\>>
|
||||||
|
<head>
|
||||||
|
<meta charset="<?php bloginfo( 'charset' ); ?\>">
|
||||||
|
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
||||||
|
<?php wp_head(); ?\>
|
||||||
|
</head>
|
||||||
|
|
||||||
|
<body <?php body_class(); ?\>>
|
||||||
|
<?php wp_body_open(); ?\>
|
||||||
|
|
||||||
|
<?php teilzeitladen_notice_banner(); ?\>
|
||||||
|
|
||||||
|
<header class="site-header">
|
||||||
|
<div class="container">
|
||||||
|
<div class="site-branding">
|
||||||
|
<?php if ( has_custom_logo() ) : ?\>
|
||||||
|
<?php the_custom_logo(); ?\>
|
||||||
|
<?php else : ?\>
|
||||||
|
<h1 class="site-title">
|
||||||
|
<a href="<?php echo esc_url( home_url( '/' ) ); ?\>">
|
||||||
|
<?php bloginfo( 'name' ); ?\>
|
||||||
|
</a>
|
||||||
|
</h1>
|
||||||
|
<?php if ( get_bloginfo( 'description' ) ) : ?\>
|
||||||
|
<p class="site-description">
|
||||||
|
<?php bloginfo( 'description' ); ?\>
|
||||||
|
</p>
|
||||||
|
<?php endif; ?\>
|
||||||
|
<?php endif; ?\>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<nav class="main-navigation">
|
||||||
|
<?php
|
||||||
|
wp_nav_menu( array(
|
||||||
|
'theme_location' => 'primary',
|
||||||
|
'menu_id' => 'primary-menu',
|
||||||
|
'container' => false,
|
||||||
|
'fallback_cb' => false,
|
||||||
|
) );
|
||||||
|
?\>
|
||||||
|
</nav>
|
||||||
|
|
||||||
|
<div class="header-actions">
|
||||||
|
<?php if ( class_exists( 'WooCommerce' ) ) : ?\>
|
||||||
|
<a href="<?php echo esc_url( wc_get_cart_url() ); ?\>" class="cart-link">
|
||||||
|
<span class="cart-icon">🛒</span>
|
||||||
|
<span class="cart-count">
|
||||||
|
<?php echo WC()->cart->get_cart_contents_count(); ?\>
|
||||||
|
</span>
|
||||||
|
</a>
|
||||||
|
<?php endif; ?\>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</header>
|
||||||
|
|
||||||
|
<div id="content" class="site-content">
|
||||||
60
wp-content/themes/teilzeitladen-theme/index.php
Normal file
60
wp-content/themes/teilzeitladen-theme/index.php
Normal file
@@ -0,0 +1,60 @@
|
|||||||
|
<?php
|
||||||
|
/**
|
||||||
|
* The main template file
|
||||||
|
*
|
||||||
|
* @package Teilzeitladen
|
||||||
|
*/
|
||||||
|
|
||||||
|
get_header();
|
||||||
|
?>
|
||||||
|
|
||||||
|
<main id="primary" class="site-main">
|
||||||
|
<div class="container">
|
||||||
|
|
||||||
|
<?php if ( is_home() && ! is_front_page() ) : ?>
|
||||||
|
<header class="page-header">
|
||||||
|
<h1 class="page-title"><?php single_post_title(); ?></h1>
|
||||||
|
</header>
|
||||||
|
<?php endif; ?>
|
||||||
|
|
||||||
|
<?php if ( have_posts() ) : ?>
|
||||||
|
<div class="posts-grid">
|
||||||
|
<?php while ( have_posts() ) : the_post(); ?>
|
||||||
|
<article id="post-<?php the_ID(); ?>" <?php post_class( 'post-card' ); ?>>
|
||||||
|
<?php if ( has_post_thumbnail() ) : ?>
|
||||||
|
<a href="<?php the_permalink(); ?>" class="post-thumbnail">
|
||||||
|
<?php the_post_thumbnail( 'product-card' ); ?>
|
||||||
|
</a>
|
||||||
|
<?php endif; ?>
|
||||||
|
|
||||||
|
<div class="post-content">
|
||||||
|
<h2 class="entry-title">
|
||||||
|
<a href="<?php the_permalink(); ?>"><?php the_title(); ?></a>
|
||||||
|
</h2>
|
||||||
|
|
||||||
|
<div class="entry-meta">
|
||||||
|
<?php echo get_the_date(); ?>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="entry-excerpt">
|
||||||
|
<?php the_excerpt(); ?>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<a href="<?php the_permalink(); ?>" class="btn">
|
||||||
|
<?php _e( 'Weiterlesen', 'teilzeitladen' ); ?>
|
||||||
|
</a>
|
||||||
|
</div>
|
||||||
|
</article>
|
||||||
|
|
||||||
|
<?php endwhile; ?>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<?php the_posts_navigation(); ?>
|
||||||
|
|
||||||
|
<?php else : ?
|
||||||
|
<p><?php _e( 'Keine Beiträge gefunden.', 'teilzeitladen' ); ?></p>
|
||||||
|
<?php endif; ?>
|
||||||
|
</div>
|
||||||
|
</main>
|
||||||
|
|
||||||
|
<?php get_footer(); ?>
|
||||||
2
wp-content/themes/teilzeitladen-theme/screenshot.png
Normal file
2
wp-content/themes/teilzeitladen-theme/screenshot.png
Normal file
@@ -0,0 +1,2 @@
|
|||||||
|
# Platzhalter - echtes Screenshot erstellen nach Installation
|
||||||
|
# Empfohlene Größe: 1200x900px
|
||||||
227
wp-content/themes/teilzeitladen-theme/style.css
Normal file
227
wp-content/themes/teilzeitladen-theme/style.css
Normal file
@@ -0,0 +1,227 @@
|
|||||||
|
/*
|
||||||
|
Theme Name: Teilzeitladen
|
||||||
|
Theme URI: https://my.teilzeitladen.xyz
|
||||||
|
Author: Christoph Emsenhuber
|
||||||
|
Author URI: https://emsenhuber.net
|
||||||
|
Description: Custom Theme für Teilzeitladen - Unikate aus Blumentexten und Bastelbeton
|
||||||
|
Version: 1.0.0
|
||||||
|
License: GPL v2
|
||||||
|
License URI: https://www.gnu.org/licenses/gpl-2.0.html
|
||||||
|
Text Domain: teilzeitladen
|
||||||
|
Tags: e-commerce, woocommerce, custom, handmade, unique
|
||||||
|
|
||||||
|
Teilzeitladen WordPress Theme © 2026 Christoph Emsenhuber
|
||||||
|
*/
|
||||||
|
|
||||||
|
/* ========================================
|
||||||
|
Teilzeitladen - Custom Styles
|
||||||
|
======================================== */
|
||||||
|
|
||||||
|
:root {
|
||||||
|
--primary-color: #8B7355;
|
||||||
|
--secondary-color: #D4C5B9;
|
||||||
|
--accent-color: #E07B39;
|
||||||
|
--text-color: #3C3633;
|
||||||
|
--bg-color: #FDF8F3;
|
||||||
|
--font-heading: 'Playfair Display', Georgia, serif;
|
||||||
|
--font-body: 'Open Sans', -apple-system, BlinkMacSystemFont, sans-serif;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Base Styles */
|
||||||
|
body {
|
||||||
|
font-family: var(--font-body);
|
||||||
|
color: var(--text-color);
|
||||||
|
background-color: var(--bg-color);
|
||||||
|
line-height: 1.6;
|
||||||
|
}
|
||||||
|
|
||||||
|
h1, h2, h3, h4, h5, h6 {
|
||||||
|
font-family: var(--font-heading);
|
||||||
|
font-weight: 600;
|
||||||
|
color: var(--primary-color);
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Header */
|
||||||
|
.site-header {
|
||||||
|
background: linear-gradient(135deg, var(--bg-color) 0%, var(--secondary-color) 100%);
|
||||||
|
padding: 1rem 0;
|
||||||
|
border-bottom: 3px solid var(--accent-color);
|
||||||
|
}
|
||||||
|
|
||||||
|
.site-title {
|
||||||
|
font-family: var(--font-heading);
|
||||||
|
font-size: 2.5rem;
|
||||||
|
color: var(--primary-color);
|
||||||
|
text-decoration: none;
|
||||||
|
}
|
||||||
|
|
||||||
|
.site-description {
|
||||||
|
color: var(--text-color);
|
||||||
|
font-style: italic;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Navigation */
|
||||||
|
.main-navigation {
|
||||||
|
background-color: var(--primary-color);
|
||||||
|
}
|
||||||
|
|
||||||
|
.main-navigation a {
|
||||||
|
color: #fff;
|
||||||
|
padding: 1rem 1.5rem;
|
||||||
|
text-decoration: none;
|
||||||
|
transition: background-color 0.3s ease;
|
||||||
|
}
|
||||||
|
|
||||||
|
.main-navigation a:hover {
|
||||||
|
background-color: var(--accent-color);
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Hero Banner */
|
||||||
|
.hero-banner {
|
||||||
|
background: linear-gradient(rgba(139, 115, 85, 0.7), rgba(139, 115, 85, 0.7)),
|
||||||
|
url('assets/images/hero-bg.jpg') center/cover;
|
||||||
|
color: #fff;
|
||||||
|
text-align: center;
|
||||||
|
padding: 6rem 2rem;
|
||||||
|
}
|
||||||
|
|
||||||
|
.hero-banner h1 {
|
||||||
|
color: #fff;
|
||||||
|
font-size: 3.5rem;
|
||||||
|
margin-bottom: 1rem;
|
||||||
|
}
|
||||||
|
|
||||||
|
.hero-banner .tagline {
|
||||||
|
font-size: 1.5rem;
|
||||||
|
font-style: italic;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Product Grid */
|
||||||
|
.products-grid {
|
||||||
|
display: grid;
|
||||||
|
grid-template-columns: repeat(auto-fit, minmax(280px, 1fr));
|
||||||
|
gap: 2rem;
|
||||||
|
padding: 3rem 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
.product-card {
|
||||||
|
background: #fff;
|
||||||
|
border-radius: 8px;
|
||||||
|
box-shadow: 0 2px 15px rgba(0,0,0,0.1);
|
||||||
|
overflow: hidden;
|
||||||
|
transition: transform 0.3s ease, box-shadow 0.3s ease;
|
||||||
|
}
|
||||||
|
|
||||||
|
.product-card:hover {
|
||||||
|
transform: translateY(-5px);
|
||||||
|
box-shadow: 0 5px 25px rgba(0,0,0,0.15);
|
||||||
|
}
|
||||||
|
|
||||||
|
.product-card img {
|
||||||
|
width: 100%;
|
||||||
|
height: 280px;
|
||||||
|
object-fit: cover;
|
||||||
|
}
|
||||||
|
|
||||||
|
.product-card .product-info {
|
||||||
|
padding: 1.5rem;
|
||||||
|
}
|
||||||
|
|
||||||
|
.product-card h3 {
|
||||||
|
margin-bottom: 0.5rem;
|
||||||
|
}
|
||||||
|
|
||||||
|
.product-card .price {
|
||||||
|
color: var(--accent-color);
|
||||||
|
font-size: 1.25rem;
|
||||||
|
font-weight: 600;
|
||||||
|
}
|
||||||
|
|
||||||
|
.product-card .unique-badge {
|
||||||
|
display: inline-block;
|
||||||
|
background-color: var(--accent-color);
|
||||||
|
color: #fff;
|
||||||
|
padding: 0.25rem 0.75rem;
|
||||||
|
border-radius: 20px;
|
||||||
|
font-size: 0.75rem;
|
||||||
|
text-transform: uppercase;
|
||||||
|
letter-spacing: 1px;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Buttons */
|
||||||
|
.btn {
|
||||||
|
display: inline-block;
|
||||||
|
padding: 0.75rem 2rem;
|
||||||
|
background-color: var(--accent-color);
|
||||||
|
color: #fff;
|
||||||
|
text-decoration: none;
|
||||||
|
border-radius: 4px;
|
||||||
|
transition: background-color 0.3s ease;
|
||||||
|
border: none;
|
||||||
|
cursor: pointer;
|
||||||
|
}
|
||||||
|
|
||||||
|
.btn:hover {
|
||||||
|
background-color: var(--primary-color);
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Footer */
|
||||||
|
.site-footer {
|
||||||
|
background-color: var(--primary-color);
|
||||||
|
color: #fff;
|
||||||
|
padding: 3rem 0 1rem;
|
||||||
|
text-align: center;
|
||||||
|
}
|
||||||
|
|
||||||
|
.site-footer a {
|
||||||
|
color: var(--secondary-color);
|
||||||
|
}
|
||||||
|
|
||||||
|
/* WooCommerce Customizations */
|
||||||
|
.woocommerce .products .product {
|
||||||
|
background: #fff;
|
||||||
|
border-radius: 8px;
|
||||||
|
padding: 1rem;
|
||||||
|
}
|
||||||
|
|
||||||
|
.woocommerce .products .product h2 {
|
||||||
|
font-family: var(--font-heading);
|
||||||
|
color: var(--primary-color);
|
||||||
|
}
|
||||||
|
|
||||||
|
.woocommerce .price {
|
||||||
|
color: var(--accent-color) !important;
|
||||||
|
font-weight: 600;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Notice Banner */
|
||||||
|
.notice-banner {
|
||||||
|
background-color: var(--accent-color);
|
||||||
|
color: #fff;
|
||||||
|
padding: 1rem;
|
||||||
|
text-align: center;
|
||||||
|
}
|
||||||
|
|
||||||
|
.notice-banner a {
|
||||||
|
color: #fff;
|
||||||
|
text-decoration: underline;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Responsive */
|
||||||
|
@media (max-width: 768px) {
|
||||||
|
.site-title {
|
||||||
|
font-size: 1.75rem;
|
||||||
|
}
|
||||||
|
|
||||||
|
.hero-banner h1 {
|
||||||
|
font-size: 2rem;
|
||||||
|
}
|
||||||
|
|
||||||
|
.hero-banner .tagline {
|
||||||
|
font-size: 1.1rem;
|
||||||
|
}
|
||||||
|
|
||||||
|
.products-grid {
|
||||||
|
grid-template-columns: 1fr;
|
||||||
|
}
|
||||||
|
}
|
||||||
Reference in New Issue
Block a user