Added advanced config

See https://littlelink-custom.com/blog/littlelink-custom-got-more-custom/
This commit is contained in:
Julian Prieber 2022-06-10 15:22:48 +02:00 committed by GitHub
commit b7166119ef
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
21 changed files with 956 additions and 41 deletions

View File

@ -0,0 +1,288 @@
<?php
$analytics =
/*
|--------------------------------------------------------------------------
| Analytics
|--------------------------------------------------------------------------
|
| Add external analytics services to your LittleLink Custom instance by adding them below.
| Everything you enter below will be added to the <head> tag of every page.
| Formatting in plain HTML is expected.
|
*/
<<<EOD
<!----------Insert your analytics code here:---------->
<!-- Global Site Tag (gtag.js) - Google Analytics -->
<script async src="https://www.googletagmanager.com/gtag/js?id=TRACKING_ID"></script>
<script>
window.dataLayer = window.dataLayer || [];
function gtag(){dataLayer.push(arguments);}
gtag('js', new Date());
gtag('config', 'TRACKING_ID');
</script>
<!--------------------------------------------------->
EOD;;
return [
/*
|--------------------------------------------------------------------------
| Default source repository type
|--------------------------------------------------------------------------
|
| Will only be active if "CUSTOM_META_TAGS" is set to "true" in the config.
| These tags will only be applied to the home page or if a LittleLink page
| is set as the homepage in the config (for example: HOME_URL="admin").
|
| Empty entries will be ignored.
|
*/
'lang' => 'en', // Sets <html lang="en">
'title' => 'Title', // Overrides the default meta page title. Leave empty to use your LittleLink page title as the title.
'description' => 'This is a description', // Overrides the default meta page description. Leave empty to use your LittleLink page description as the description.
'robots' => 'index,follow',
'viewport' => 'width=device-width, initial-scale=1',
'canonical_url' => 'https://example.com', // Tells search engines to index "https://example.com/"  instead of "https://example.com/@admin",  for example.
'twitter_creator' => '@elonmusk', // Twitter @username. For example: "@elonmusk".
'author' => 'Julian Prieber', // Your name.
/*
| All settings below are always active
|~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
*/
/*
|--------------------------------------------------------------------------
| Additional settings
|--------------------------------------------------------------------------
|
| Empty entries will be ignored.
|
*/
// Overwrites default theme regardless of preference defined by the operating system, unless manually overwritten by user.
'theme' => 'light', // Either "dark" or "light".
// Overwrites default theme regardless of preference defined by the operating system, unless manually overwritten by user.
// Overwrites default page title after the LittleLink name on LittleLink pages.
// Example: "admin 🔗 LittleLink Custom"
// ⤌------------------⤍
// ⬑ What you can change with this setting.
'littlelink_title' => '💡 Little CustomLink',
// Either "true", "false" or "auth".
// If "auth" is selected, the share button will only be shown to users on their own page.
'display_share_button' => 'true',
// Do not change here!
'analytics' => $analytics, // Set on top of page.
/*
|--------------------------------------------------------------------------
| Custom routes
|--------------------------------------------------------------------------
|
| You can change routes to improve security.
|
*/
'login_url' => '/login',
'register_url' => '/register',
'forgot_password_url' => '/forgot-password',
'custom_home_url' => '/home', // Only applies if you set a "HOME_URL" in the config.
// If 'true' the Home Page will be disabled entirely.
// You will still be able to login on the login page etc.
'disable_home_page' => 'false', // Either 'true', 'false' or 'redirect'.
'redirect_home_page' => 'https://littlelink-custom.com', // Only active if value above is set to 'redirect'.
// The URL prefix is the symbol that comes before a LittleLink URL.
// For example the '@' in 'example.com/@admin'.
// If empty no prefix is required. Use with caution.
'custom_url_prefix' => '✅', // The '@' prefix will always work regardless of this setting.
/*
|--------------------------------------------------------------------------
| Footer links
|--------------------------------------------------------------------------
|
| Footer links are the links that are displayed on the bottom of your page, reading: "Home, Terms, Privacy, Contact".
| You can toggle each individual link on or off. 
| You can also set a custom URL for the "Home" link.
|
*/
// Either "true" or "false".
'display_link_home' => 'true',
'display_link_terms' => 'true',
'display_link_privacy' => 'true',
'display_link_contact' => 'true',
// Enter a custom home link (for example, 'https://littlelink-custom.com').
'custom_link_home' => 'https://littlelink-custom.com', // Leave empty to use default value.
// Changes the text on the "Home" link.
'custom_text_home' => 'Custom Text', // Leave empty to use default value.
/*
|--------------------------------------------------------------------------
| Home Page settings
|--------------------------------------------------------------------------
|
| To change footer text on the Home Page, set the setting 'footer' to your preference.
|
| The footer text is the towards the bottom of the Home Page that reads: "and X other buttons ..."
|
| Depending on the amount of buttons on your Home Page, you might want to change this text.
|
| 'default' -> Uses default text.
| 'alt' -> Displays an alternative version based on the Button Editor.
| 'custom' -> Displays your custom text defined with 'custom_footer_text'.
| 'false' -> Removes the footer.
|
*/
'home_footer' => 'custom', // Either 'default', 'alt', 'custom' or 'false'.
// You can enter plain text or HTML into this field.
// You can use "{year}" as a placeholder for the current year.
// So "©{year}" would output "©2033" (or whatever the current year is).
'custom_home_footer_text' => '© Copyright {year} - All Rights Reserved',
// Apply a theme to your Home Page.
// Some themes are not compatible with the Home Page. Use at your own discretion.
// Enter the name of a theme located in your "themes" folder (for example, 'galaxy').
'home_theme' => 'galaxy', // Leave empty or enter 'default' to use the default theme.
/*
|--------------------------------------------------------------------------
| Custom Buttons on Home Page
|--------------------------------------------------------------------------
|
| Here you can configure your own buttons for the Home Page.
| You can add or remove as many buttons as you like.
|
| The syntax of the custom buttons is as follows:
|
| array(
| 'button' => '',
| 'link' => '',
| 'title' => '',
| 'icon' => '',
| 'custom_css' => ''
| ),
|
| In the 'button' field, you have to enter the button name (i.e. 'twitter', 'github', 'custom'...).
| You can find a list of all available buttons below.
|
| In the 'link' field, you can enter your desired link you may leave this field empty for a display only, non-functional button.
|
|
|
| The input fields below only apply to buttons such as 'custom' and 'custom_website' but must always be included even if only empty.
|~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
| In the 'title' field, changes the text on a button, such as 'custom' and 'custom_website'.
|
| In the 'icon' field, uses the same syntax as the Button Editor on the Admin Panel.
| This allows you to add your own icons to 'custom' buttons. You can find a list of available icons on llc.bio/fa.
|
| In the 'custom_css' field, here you can enter custom CSS to change the color of your button.
| If you don't feel comfortable working with CSS,
| you can copy and paste the CSS from the 'Custom CSS' field of the Button Editor on the Admin Panel.
|
*/
'use_custom_buttons' => 'true', // Set this to false if you wish to display the old buttons.
'buttons' => array(
array(
'button' => 'github',
'link' => 'https://github.com/JulianPrieber/littlelink-custom',
'title' => '',
'icon' => '',
'custom_css' => ''
),
array(
'button' => 'custom',
'link' => 'https://littlelink-custom.com',
'title' => 'Project Website',
'icon' => 'llc',
'custom_css' => 'color:#ffffff; background-image:linear-gradient(76deg, #f70fff 0%, #11d4de 100%);'),
array(
'button' => 'custom',
'link' => 'https://littlelink-custom.com/sponsor',
'title' => 'Help us out',
'icon' => 'fa-hand-holding-hand',
'custom_css' => 'color:#ffffff; background-image:radial-gradient(circle, #00d2ff 0%, #3a7bd5 95%);'
),
)
/*
|--------------------------------|
| List of Available buttons: |
|--------------------------------|
| 'button' => 'custom' |
| 'button' => 'custom_website' |
| 'button' => 'github' |
| 'button' => 'twitter' |
| 'button' => 'instagram' |
| 'button' => 'facebook' |
| 'button' => 'messenger' |
| 'button' => 'linkedin' |
| 'button' => 'youtube' |
| 'button' => 'discord' |
| 'button' => 'twitch' |
| 'button' => 'snapchat' |
| 'button' => 'spotify' |
| 'button' => 'reddit' |
| 'button' => 'medium' |
| 'button' => 'pinterest' |
| 'button' => 'soundcloud' |
| 'button' => 'figma' |
| 'button' => 'kit' |
| 'button' => 'telegram' |
| 'button' => 'tumblr' |
| 'button' => 'steam' |
| 'button' => 'vimeo' |
| 'button' => 'wordpress' |
| 'button' => 'goodreads' |
| 'button' => 'skoob' |
| 'button' => 'tiktok' |
| 'button' => 'default email' |
| 'button' => 'default email_alt'|
| 'button' => 'bandcamp' |
| 'button' => 'patreon' |
| 'button' => 'signal' |
| 'button' => 'venmo' |
| 'button' => 'cashapp' |
| 'button' => 'gitlab' |
| 'button' => 'mastodon' |
| 'button' => 'paypal' |
| 'button' => 'whatsapp' |
| 'button' => 'xing' |
| 'button' => 'buy me a coffee' |
| 'button' => 'website' |
| 'button' => 'heading' |
| 'button' => 'space' |
|--------------------------------|
*/
];

1
littlelink/icons/llc.svg Normal file

File diff suppressed because one or more lines are too long

After

Width:  |  Height:  |  Size: 54 KiB

View File

@ -1,15 +1,30 @@
<!DOCTYPE html>
<html lang="en">
@include('layouts.lang')
<head>
<meta charset="utf-8">
@include('layouts.analytics')
@if(env('CUSTOM_META_TAGS') == 'true' and config('advanced-config.title') != '')
<title>{{ config('advanced-config.title') }}</title>
@else
<title>{{ config('app.name') }}</title>
@endif
<?php $cleaner_input = strip_tags($message->home_message); ?>
@if(env('CUSTOM_META_TAGS') == 'true')
@include('layouts.meta')
@else
<meta name="description" content="{{ $cleaner_input }}">
<meta name="viewport" content="width=device-width, initial-scale=1">
@endif
<!-- Custom icons font-awesome -->
<script src="https://kit.fontawesome.com/c4a5e06183.js" crossorigin="anonymous"></script>
<link href="//fonts.googleapis.com/css?family=Open+Sans:400,600,800&display=swap" rel="stylesheet">
<link rel="stylesheet" href="{{ asset('littlelink/css/normalize.css') }}">
<link rel="stylesheet" href="{{ asset('littlelink/css/brands.css') }}">
<link rel="stylesheet" href="{{ asset('littlelink/css/hover-min.css') }}">
<link rel="stylesheet" href="{{ asset('littlelink/css/animate.css') }}">
@if(file_exists(base_path("littlelink/images/avatar.png" )))
<link rel="icon" type="image/png" href="{{ asset('littlelink/images/avatar.png') }}">
@ -17,21 +32,63 @@
<link rel="icon" type="image/svg+xml" href="{{ asset('littlelink/images/logo.svg') }}">
@endif
{{-- custom font for logo text --}}
<style>@font-face{font-family:'ll';src:url({{ asset('littlelink/fonts/littlelink-custom.otf') }}) format("opentype")}</style>
@if(config('advanced-config.home_theme') != '' and config('advanced-config.home_theme') != 'default')
<!-- LittleLink Custom Theme: "{{config('advanced-config.home_theme')}}" -->
<link rel="stylesheet" href="themes/{{config('advanced-config.home_theme')}}/brands.css">
<link rel="stylesheet" href="themes/{{config('advanced-config.home_theme')}}/skeleton-auto.css">
@if(file_exists(base_path('themes/' . config('advanced-config.home_theme') . '/animations.css')))
<link rel="stylesheet" href="<?php echo asset('themes/' . config('advanced-config.home_theme') . '/animations.css') ?>">
@else
<link rel="stylesheet" href="{{ asset('littlelink/css/animations.css') }}">
@endif
@else
<link rel="stylesheet" href="{{ asset('littlelink/css/brands.css') }}">
<link rel="stylesheet" href="{{ asset('littlelink/css/animations.css') }}">
<?php // override dark/light mode if override cookie is set
$color_scheme_override = isset($_COOKIE["color_scheme_override"]) ? $_COOKIE["color_scheme_override"] : false; ?>
@if ($color_scheme_override == 'dark')
<link rel="stylesheet" href="{{ asset('littlelink/css/skeleton-dark.css') }}">
@elseif ($color_scheme_override == 'light')
<link rel="stylesheet" href="{{ asset('littlelink/css/skeleton-light.css') }}">
@elseif (config('advanced-config.theme') == 'dark')
<link rel="stylesheet" href="{{ asset('littlelink/css/skeleton-dark.css') }}">
@elseif (config('advanced-config.theme') == 'light')
<link rel="stylesheet" href="{{ asset('littlelink/css/skeleton-light.css') }}">
@else
<link rel="stylesheet" href="{{ asset('littlelink/css/skeleton-auto.css') }}">
@endif
@endif
{{-- custom font for logo text --}}
<style>@font-face{font-family:'ll';src:url({{ asset('littlelink/fonts/littlelink-custom.otf') }}) format("opentype")}</style>
</head>
<body>
@if(config('advanced-config.home_theme') != '' and config('advanced-config.home_theme') != 'default')
<!-- Enables parallax background animations -->
<div class="background-container">
<section class="parallax-background">
<div id="object1" class="object1"></div>
<div id="object2" class="object2"></div>
<div id="object3" class="object3"></div>
<div id="object4" class="object4"></div>
<div id="object5" class="object5"></div>
<div id="object6" class="object6"></div>
<div id="object7" class="object7"></div>
<div id="object8" class="object8"></div>
<div id="object9" class="object9"></div>
<div id="object10" class="object10"></div>
<div id="object11" class="object11"></div>
<div id="object12" class="object12"></div>
</section>
</div>
<!-- End of parallax background animations -->
@endif
<?php
$pages = DB::table('pages')->get();
foreach($pages as $page)
@ -76,14 +133,56 @@ foreach($pages as $page)
<?php echo $message->home_message; ?>
</div>
<?php $initial=1; // <-- Effectively sets the initial loading time of the buttons. This value should be left at 1. ?>
<!-- Buttons -->
<?php $initial=1; // <-- Effectively sets the initial loading time of the buttons. This value should be left at 1. ?>
@if(config('advanced-config.use_custom_buttons') == 'true')
<?php $array = config('advanced-config.buttons'); ?>
@foreach($array as $button)
@php $linkName = str_replace('default ','',$button['button']) @endphp
@if($button['button'] === "custom" and $button['custom_css'] === "" or $button['custom_css'] === "NULL")
<div style="--delay: {{ $initial++ }}s" class="button-entrance"><a class="button button-{{ $button['button'] }} button button-hover icon-hover" @if($button['link'] != '') href="{{ $button['link'] }}" target="_blank"@endif>@if($button['icon'] == 'llc')<img alt="button-icon" class="icon hvr-icon" src="{{ asset('\/littlelink/icons\/')}}llc.svg">@else<i style="color: {{ $button['icon'] }}" class="icon hvr-icon fa {{ $button['icon'] }}"></i>@endif{{ $button['title'] }}</a></div>
@elseif($button['button'] === "custom" and $button['custom_css'] != "")
<div style="--delay: {{ $initial++ }}s" class="button-entrance"><a class="button button-hover icon-hover" style="{{ $button['custom_css'] }}" @if($button['link'] != '') href="{{ $button['link'] }}" target="_blank"@endif>@if($button['icon'] == 'llc')<img alt="button-icon" class="icon hvr-icon" src="{{ asset('\/littlelink/icons\/')}}llc.svg">@else<i style="color: {{ $button['icon'] }}" class="icon hvr-icon fa {{ $button['icon'] }}"></i>@endif{{ $button['title'] }}</a></div>
@elseif($button['button'] === "buy me a coffee")
<div style="--delay: {{ $initial++ }}s" class="button-entrance"><a class="button button-coffee button button-hover icon-hover" @if($button['link'] != '') href="{{ $button['link'] }}" target="_blank"@endif><img alt="button-icon" class="icon hvr-icon" src="{{ asset('\/littlelink/icons\/')}}coffee.svg">Buy me a Coffee</a></div>
@elseif($button['button'] === "custom_website"and $button['custom_css'] === "" or $button['custom_css'] === "NULL")
<div style="--delay: {{ $initial++ }}s" class="button-entrance"><a class="button button-custom_website button button-hover icon-hover" @if($button['link'] != '') href="{{ $button['link'] }}" target="_blank"@endif><img alt="button-icon" class="icon hvr-icon" src="http://www.google.com/s2/favicons?domain={{$link->link}}">{{ $button['title'] }}</a></div>
@elseif($button['button'] === "custom_website" and $button['custom_css'] != "")
<div style="--delay: {{ $initial++ }}s" class="button-entrance"><a class="button button-hover icon-hover" style="{{ $button['custom_css'] }}" @if($button['link'] != '') href="{{ $button['link'] }}" target="_blank"@endif><img alt="button-icon" class="icon hvr-icon" src="http://www.google.com/s2/favicons?domain={{$link->link}}">{{ $button['title'] }}</a></div>
@elseif($button['button'] === "space")
<?php
if (is_numeric($button['title']) and $button['title'] < 10)
echo str_repeat("<br>",$button['title']);
elseif (is_numeric($button['title']) and $button['title'] >= 10)
echo str_repeat("<br>",10);
else
echo "<br><br><br>"
?>
@elseif($button['button'] === "heading")
<h2>{{ $button['title'] }}</h2>
@else
<div style="--delay: {{ $initial++ }}s" class="button-entrance"><a class="button button-{{ $button['button'] }} button button-hover icon-hover" @if($button['link'] != '') href="{{ $button['link'] }}" target="_blank"@endif><img alt="button-icon" class="icon hvr-icon" src="{{ asset('\/littlelink/icons\/') . $linkName }}.svg">{{ ucfirst($linkName) }}</a></div>
@endif
@endforeach
@else
<div style="--delay: {{ $initial++ }}s" class="button-entrance"><div class="button button-github button hvr-grow hvr-icon-wobble-vertical"><img alt="button-icon" class="icon hvr-icon" src="{{ asset('littlelink/icons/github.svg') }}">Github</div></div>
<div style="--delay: {{ $initial++ }}s" class="button-entrance"><div class="button button-twitter button hvr-grow hvr-icon-wobble-vertical"><img alt="button-icon" class="icon hvr-icon" src="{{ asset('littlelink/icons/twitter.svg') }}">Twitter</div></div>
<div style="--delay: {{ $initial++ }}s" class="button-entrance"><div class="button button-instagram button hvr-grow hvr-icon-wobble-vertical"><img alt="button-icon" class="icon hvr-icon" src="{{ asset('littlelink/icons/instagram.svg') }}">Instagram</div></div>
@endif
</br></br>
<div class="fadein">
@if(config('advanced-config.home_footer') == 'custom')
<p><?php $year = date("Y"); echo strtr(config('advanced-config.custom_home_footer_text'), array('{year}' => $year)); ?></p>
@elseif(config('advanced-config.home_footer') == 'alt')
<p><i style="position:relative;top:1px;" class="fa-solid fa-infinity"></i> - Button combinations</p>
@elseif(config('advanced-config.home_footer') == 'false')
@else
<p>and {{ $countButton - 3 }} other buttons ...</p>
@endif
</div>
<hr class="my-4" style="display:none">
<p style="display:none">updated pages</p>

View File

@ -0,0 +1,13 @@
<?php
$analyticsHTML = config('advanced-config.analytics');
$analyticsHTML = preg_replace("~<!--(.*?)-->~s", "", $analyticsHTML);
$analyticsHTML = trim($analyticsHTML);
?>
@if(preg_replace( "/\r|\n/", "", $analyticsHTML ) != '')
<!-- Analytics -->
{!! $analyticsHTML !!}
<!-- /Analytics -->
@endif

View File

@ -2,6 +2,9 @@
<html lang="{{ str_replace('_', '-', app()->getLocale()) }}">
<head>
<meta charset="utf-8">
@include('layouts.analytics')
<meta name="viewport" content="width=device-width, initial-scale=1">
<meta name="csrf-token" content="{{ csrf_token() }}">

View File

@ -1,10 +1,10 @@
<div class="container">
<div class="footer fadein" style="margin:5% 0px 35px 0px;">
@if(env('DISPLAY_FOOTER') === true)
<a class="footer-hover spacing" href="{{ url('') }}/">Home</a>
<a class="footer-hover spacing" href="{{ url('') }}/pages/terms">Terms</a>
<a class="footer-hover spacing" href="{{ url('') }}/pages/privacy">Privacy</a>
<a class="footer-hover spacing" href="{{ url('') }}/pages/contact">Contact</a>
@if(config('advanced-config.display_link_home') != 'false')<a class="footer-hover spacing" @if(config('advanced-config.custom_link_home') != '')href="{{ config('advanced-config.custom_link_home') }}"@else href="{{ url('') }}/"@endif> @if(config('advanced-config.custom_text_home') != ''){{config('advanced-config.custom_text_home')}}@else Home @endif</a>@endif
@if(config('advanced-config.display_link_terms') != 'false')<a class="footer-hover spacing" href="{{ url('') }}/pages/terms">Terms</a>@endif
@if(config('advanced-config.display_link_privacy') != 'false')<a class="footer-hover spacing" href="{{ url('') }}/pages/privacy">Privacy</a>@endif
@if(config('advanced-config.display_link_contact') != 'false')<a class="footer-hover spacing" href="{{ url('') }}/pages/contact">Contact</a>@endif
@endif
</div>
@ -20,4 +20,4 @@
</section>
</a></div><br><br><br>
@endif
</div>
</div>

View File

@ -2,9 +2,18 @@
<html lang="{{ str_replace('_', '-', app()->getLocale()) }}">
<head>
<meta charset="utf-8">
@include('layouts.analytics')
<meta name="viewport" content="width=device-width, initial-scale=1">
<meta name="csrf-token" content="{{ csrf_token() }}">
@if(file_exists(base_path("littlelink/images/avatar.png" )))
<link rel="icon" type="image/png" href="{{ asset('littlelink/images/avatar.png') }}">
@else
<link rel="icon" type="image/svg+xml" href="{{ asset('littlelink/images/logo.svg') }}">
@endif
<title>{{ config('app.name') }}</title>
<!-- Fonts -->
@ -44,7 +53,7 @@
<?php // loads dark mode CSS if dark mode detected
$color_scheme = isset($_COOKIE["color_scheme"]) ? $_COOKIE["color_scheme"] : false;
$color_scheme_override = isset($_COOKIE["color_scheme_override"]) ? $_COOKIE["color_scheme_override"] : false; ?>
@if ($color_scheme == 'dark' and $color_scheme_override != 'light' or $color_scheme_override == 'dark')
@if ($color_scheme == 'dark' and config('advanced-config.theme') != 'light' and $color_scheme_override != 'light' or $color_scheme_override == 'dark' or config('advanced-config.theme') == 'dark')
<link rel="stylesheet" href="{{ asset('css/app-dark.css') }}">
@endif
<!-- end dark mode detection -->

View File

@ -0,0 +1,5 @@
@if(env('CUSTOM_META_TAGS') == 'true' and config('advanced-config.lang') != '')
<html lang="{{ config('advanced-config.lang') }}">
@else
<html lang="en">
@endif

View File

@ -0,0 +1,15 @@
@if(config('advanced-config.description') != '')<meta name="description" content="{{ config('advanced-config.description') }}">
@elseif(Route::currentRouteName() != 'home')<meta name="description" content="{{ $userinfo->littlelink_description }}">
@else<meta name="description" content="{{ $cleaner_input }}">@endif
@if(config('advanced-config.author') != '')<meta name="author" content="{{ config('advanced-config.author') }}">
@elseif(Route::currentRouteName() != 'home')<meta name="author" content="{{ $userinfo->name }}">@endif
@if(config('advanced-config.viewport') != '')<meta name="viewport" content="{{ config('advanced-config.viewport') }}"/>
@else<meta name="viewport" content="width=device-width, initial-scale=1">@endif
@if(config('advanced-config.robots') != '')<meta name="robots" content="{{ config('advanced-config.robots') }}">@endif
@if(config('advanced-config.canonical_url') != '')<link rel="canonical" href="{{ config('advanced-config.canonical_url') }}">@endif
@if(config('advanced-config.twitter_creator') != '')<meta name="twitter:creator" content="{{ config('advanced-config.twitter_creator') }}">@endif

View File

@ -1,8 +1,11 @@
<!doctype html>
<html lang="en">
@include('layouts.lang')
<head>
<title>Studio ⚙️ {{ config('app.name') }}</title>
<meta charset="utf-8">
@include('layouts.analytics')
<meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">
<link rel="stylesheet" href="{{ asset('littlelink/css/hover-min.css') }}">
<link rel="stylesheet" href="{{ asset('littlelink/css/animate.css') }}">
@ -37,10 +40,13 @@
<?php // loads dark mode CSS if dark mode detected
$color_scheme = isset($_COOKIE["color_scheme"]) ? $_COOKIE["color_scheme"] : false;
$color_scheme_override = isset($_COOKIE["color_scheme_override"]) ? $_COOKIE["color_scheme_override"] : false; ?>
@if ($color_scheme == 'dark' and $color_scheme_override != 'light' or $color_scheme_override == 'dark')
@if ($color_scheme == 'dark' and config('advanced-config.theme') != 'light' and $color_scheme_override != 'light' or $color_scheme_override == 'dark')
<!-- switch the two <link> Tags below to default to dark mode if cookie detection fails -->
<link rel="stylesheet" href="{{ asset('/studio/css/bootstrap.min-dark.css') }}">
<link rel="stylesheet" href="{{ asset('/studio/css/style-dashboard-dark.css') }}">
@elseif(config('advanced-config.theme') == 'dark')
<link rel="stylesheet" href="{{ asset('/studio/css/bootstrap.min-dark.css') }}">
<link rel="stylesheet" href="{{ asset('/studio/css/style-dashboard-dark.css') }}">
@else
<link rel="stylesheet" href="{{ asset('/studio/css/bootstrap.min.css') }}">
<link rel="stylesheet" href="{{ asset('/studio/css/style-dashboard.css') }}">
@ -154,10 +160,11 @@ if ($url1sb->successful() or $url2sb->successful()) {
@if(env('DISPLAY_FOOTER') === true)
<p>
Copyright &copy; @php echo date('Y'); @endphp {{ config('app.name') }}<i class="icon-heart" aria-hidden="true"></i> </br>
<a href="{{ url('') }}/">Home</a> .
<a href="{{ url('') }}/pages/terms" target="_blank">Terms</a> .
<a href="{{ url('') }}/pages/privacy" target="_blank">Privacy</a> .
<a href="{{ url('') }}/pages/contact" target="_blank">Contact</a>
@php if(config('advanced-config.display_link_home') != 'false' and config('advanced-config.display_link_terms') != 'false' and config('advanced-config.display_link_privacy') != 'false' and config('advanced-config.display_link_contact') != 'false'){$dot=" . "; } else {$dot="&ensp;";} @endphp
@if(config('advanced-config.display_link_home') != 'false')<a class="footer-hover spacing" @if(config('advanced-config.custom_link_home') != '')href="{{ config('advanced-config.custom_link_home') }}"@else href="{{ url('') }}/"@endif> @if(config('advanced-config.custom_text_home') != ''){{config('advanced-config.custom_text_home')}}@else Home @endif</a>{!!$dot!!}@endif
@if(config('advanced-config.display_link_terms') != 'false')<a class="footer-hover spacing" href="{{ url('') }}/pages/terms">Terms</a>{!!$dot!!}@endif
@if(config('advanced-config.display_link_privacy') != 'false')<a class="footer-hover spacing" href="{{ url('') }}/pages/privacy">Privacy</a>{!!$dot!!}@endif
@if(config('advanced-config.display_link_contact') != 'false')<a class="footer-hover spacing" href="{{ url('') }}/pages/contact">Contact</a>@endif
</p>
@endif
@if(env('DISPLAY_CREDIT') === true)
@ -255,7 +262,10 @@ if ($url1sb->successful() or $url2sb->successful()) {
<a style="color:tomato;" class="nav-link" href="{{ url('update') }}">You are in BETA mode! <img src="https://img.shields.io/static/v1?label=installed:&message=<?php if(file_exists(base_path("vbeta.json"))) {echo file_get_contents(base_path("vbeta.json"));} else {echo "none";} ?>&color=FFFFFF"> <img src="https://img.shields.io/static/v1?label=server:&message=<?php echo file_get_contents("https://update.littlelink-custom.com/beta/vbeta.json"); ?>&color=FFFFFF"></a>
@endif
@if ($color_scheme_override == 'dark' or ($color_scheme == 'dark' and $color_scheme_override != 'dark' and $color_scheme_override != 'light'))
@if (config('advanced-config.theme') == 'light' and $color_scheme_override != 'dark')
<div id="myBtn" class="toggle"><span>🌙</span><input type="checkbox" id="toggle-switch" checked/><label for="toggle-switch"></label><span>☀️</span></div>
<script>function ColorOverrride(){document.cookie="color_scheme_override=dark; path=/",location.reload()}var btn=document.getElementById("myBtn");btn.addEventListener("click",ColorOverrride);</script>
@elseif ($color_scheme_override == 'dark' or ($color_scheme == 'dark' and $color_scheme_override != 'dark' and $color_scheme_override != 'light'))
<div id="myBtn" class="toggle"><span>🌙</span><input type="checkbox" id="toggle-switch" /><label for="toggle-switch"></label><span>☀️</span></div>
<script>function ColorOverrride(){document.cookie="color_scheme_override=light; path=/",location.reload()}var btn=document.getElementById("myBtn");btn.addEventListener("click",ColorOverrride);</script>
@elseif ($color_scheme_override == 'light' or ($color_scheme == 'light' and $color_scheme_override != 'dark' and $color_scheme_override != 'light'))

View File

@ -1,8 +1,11 @@
<!DOCTYPE html>
<html lang="en">
@include('layouts.lang')
<head>
<meta charset="utf-8">
@include('layouts.analytics')
<meta name="viewport" content="width=device-width, initial-scale=1">
@stack('updater-head')
@ -29,6 +32,10 @@
<link rel="stylesheet" href="{{ asset('littlelink/css/skeleton-dark.css') }}">
@elseif ($color_scheme_override == 'light')
<link rel="stylesheet" href="{{ asset('littlelink/css/skeleton-light.css') }}">
@elseif (config('advanced-config.theme') == 'dark')
<link rel="stylesheet" href="{{ asset('littlelink/css/skeleton-dark.css') }}">
@elseif (config('advanced-config.theme') == 'light')
<link rel="stylesheet" href="{{ asset('littlelink/css/skeleton-light.css') }}">
@else
<link rel="stylesheet" href="{{ asset('littlelink/css/skeleton-auto.css') }}">
@endif

View File

@ -1,15 +1,27 @@
<!DOCTYPE html>
<html lang="en">
@include('layouts.lang')
<head>
<meta charset="utf-8">
@if(env('HOME_URL') != '')
@include('layouts.analytics')
@if(config('advanced-config.littlelink_title') != '' and env('HOME_URL') === '')
<title>{{ $userinfo->name }} {{ config('advanced-config.littlelink_title') }}</title>
@elseif(env('CUSTOM_META_TAGS') == 'true' and config('advanced-config.title') != '')
<title>{{ config('advanced-config.title') }}</title>
@elseif(env('HOME_URL') != '')
<title>{{ $userinfo->name }}</title>
@else
<title>{{ $userinfo->name }} 🔗 {{ config('app.name') }} </title>
@endif
@if(env('CUSTOM_META_TAGS') == 'true')
@include('layouts.meta')
@else
<meta name="description" content="{{ $userinfo->littlelink_description }}">
<meta name="author" content="{{ $userinfo->name }}">
<meta name="viewport" content="width=device-width, initial-scale=1">
@endif
<!--#### BEGIN Meta Tags social media preview images ####-->
<!-- This shows a preview for title, description and avatar image of users profiles if shared on social media sites -->
@ -78,6 +90,10 @@
<link rel="stylesheet" href="{{ asset('littlelink/css/skeleton-dark.css') }}">
@elseif ($color_scheme_override == 'light')
<link rel="stylesheet" href="{{ asset('littlelink/css/skeleton-light.css') }}">
@elseif (config('advanced-config.theme') == 'dark')
<link rel="stylesheet" href="{{ asset('littlelink/css/skeleton-dark.css') }}">
@elseif (config('advanced-config.theme') == 'light')
<link rel="stylesheet" href="{{ asset('littlelink/css/skeleton-light.css') }}">
@else
<link rel="stylesheet" href="{{ asset('littlelink/css/skeleton-auto.css') }}">
@endif
@ -107,6 +123,26 @@
@endif
<?php ////begin share button//// ?>
@if(config('advanced-config.display_share_button') != '')
@if(config('advanced-config.display_share_button') == 'false')
<?php $ShowShrBtn = 'false'; ?>
@elseif(config('advanced-config.display_share_button') == 'user')
@if($littlelink_names = Auth::user()->littlelink_name)
<?php $ShowShrBtn = 'true'; ?>
@else
<?php $ShowShrBtn = 'false'; ?>
@endif
@else
<?php $ShowShrBtn = 'true'; ?>
@endif
@else
<?php $ShowShrBtn = 'true'; ?>
@endif
@if($ShowShrBtn == 'true')
<?php
//Get browser type
$arr_browsers = ["Opera", "Edg", "Chrome", "Safari", "Firefox", "MSIE", "Trident"];
@ -169,6 +205,8 @@ function get_operating_system() {
</span>
@endif
<script src="{{ asset('littlelink/js/share.button.js') }}"></script>
@endif
<?php ////end share button//// ?>
<div class="container">

View File

@ -1,7 +1,10 @@
<!DOCTYPE html>
<html lang="en">
@include('layouts.lang')
<head>
<meta charset="utf-8">
@include('layouts.analytics')
<title>{{ config('app.name') }}</title>
<meta name="viewport" content="width=device-width, initial-scale=1">
<link href="//fonts.googleapis.com/css?family=Open+Sans:400,600,800&display=swap" rel="stylesheet">
@ -44,12 +47,16 @@
<?php // loads dark mode CSS if dark mode detected
$color_scheme = isset($_COOKIE["color_scheme"]) ? $_COOKIE["color_scheme"] : false;
$color_scheme_override = isset($_COOKIE["color_scheme_override"]) ? $_COOKIE["color_scheme_override"] : false; ?>
@if ($color_scheme == 'dark' and $color_scheme_override != 'light' or $color_scheme_override == 'dark')
@if ($color_scheme == 'dark' and config('advanced-config.theme') != 'light' and $color_scheme_override != 'light' or $color_scheme_override == 'dark')
<!-- switch the two <link> Tags below to default to dark mode if cookie detection fails -->
<link rel="stylesheet" href="{{ asset('littlelink/css/skeleton-dark.css') }}">
@else
@elseif (config('advanced-config.theme') == 'dark')
<link rel="stylesheet" href="{{ asset('littlelink/css/skeleton-dark.css') }}">
@elseif (config('advanced-config.theme') == 'light')
<link rel="stylesheet" href="{{ asset('littlelink/css/skeleton-light.css') }}">
@endif
@else
<link rel="stylesheet" href="{{ asset('littlelink/css/skeleton-light.css') }}">
@endif
<!-- end dark mode detection -->
<style>.container-text{position:relative;width:95%;max-width:900px;margin:0 auto;box-sizing:border-box}</style>

View File

@ -1,5 +1,5 @@
<!DOCTYPE html>
<html lang="en">
@include('layouts.lang')
@if(auth()->user()->role == 'admin')
<head>
<!-- begin dark mode detection -->
@ -96,4 +96,4 @@ phpinfo(INFO_MODULES);
</div>
</body>
@endif
</html>
</html>

View File

@ -125,7 +125,10 @@ exit(); ?>
<p><?php if(file_exists(base_path("vbeta.json"))) {echo "Installed beta version= " . file_get_contents(base_path("vbeta.json"));} else {echo "Installed beta version= none";} ?></p>
<p><?php if($Vgit > $Vlocal) {echo "You need to update to the latest mainline release";} else {echo "You're running the latest mainline release";} ?></p>
@else
<h4 class="">The update was successful, you can now return to the Admin Panel:</h4>
<h4 class="">The update was successful, you can now return to the Admin Panel.</h4>
<style>.noteslink:hover{color:#006fd5;text-shadow:0px 6px 7px rgba(23,10,6,0.66);}</style>
<a class="noteslink" href="https://github.com/JulianPrieber/littlelink-custom/releases/latest" target="_blank"><i class="fa-solid fa-up-right-from-square"></i> View the release notes</a>
<br>
@endif
<br><div class="row">
&ensp;<a class="btn" href="{{ route('studioIndex') }}"><button><i class="fa-solid fa-house-laptop btn"></i> Admin Panel</button></a>&ensp;

View File

@ -4,6 +4,9 @@
<head>
<meta charset="utf-8">
@include('layouts.analytics')
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1">
<title>@lang('env-editor::env-editor.menuTitle')</title>

View File

@ -10,25 +10,43 @@ use App\Http\Controllers\Auth\RegisteredUserController;
use App\Http\Controllers\Auth\VerifyEmailController;
use Illuminate\Support\Facades\Route;
Route::get('/register', [RegisteredUserController::class, 'create'])
if(config('advanced-config.register_url') != '') {
$register = config('advanced-config.register_url');
} else {
$register = "/register";
}
if(config('advanced-config.login_url') != '') {
$login = config('advanced-config.login_url');
} else {
$login = "/login";
}
if(config('advanced-config.forgot_password_url') != '') {
$forgot_password = config('advanced-config.forgot_password_url');
} else {
$forgot_password = "/forgot-password";
}
Route::get($register, [RegisteredUserController::class, 'create'])
->middleware('guest')
->name('register');
Route::post('/register', [RegisteredUserController::class, 'store'])
Route::post($register, [RegisteredUserController::class, 'store'])
->middleware('guest');
Route::get('/login', [AuthenticatedSessionController::class, 'create'])
Route::get($login, [AuthenticatedSessionController::class, 'create'])
->middleware('guest')
->name('login');
Route::post('/login', [AuthenticatedSessionController::class, 'store'])
Route::post($login, [AuthenticatedSessionController::class, 'store'])
->middleware('guest');
Route::get('/forgot-password', [PasswordResetLinkController::class, 'create'])
Route::get( $forgot_password, [PasswordResetLinkController::class, 'create'])
->middleware('guest')
->name('password.request');
Route::post('/forgot-password', [PasswordResetLinkController::class, 'store'])
Route::post( $forgot_password, [PasswordResetLinkController::class, 'store'])
->middleware('guest')
->name('password.email');

View File

@ -20,12 +20,26 @@ use App\Http\Controllers\UserController;
// generates new APP KEY if no one is set
if(EnvEditor::getKey('APP_KEY')==''){Artisan::call('key:generate');}
// copies template meta config if none is present
if(!file_exists(base_path("config/advanced-config.php"))){copy(base_path('storage/templates/advanced-config.php'), base_path('config/advanced-config.php'));}
//Changes the homepage to a LittleLink Custom profile if set in the config
if(config('advanced-config.custom_home_url') != '') {
$custom_home_page_url = config('advanced-config.custom_home_url');
} else {
$custom_home_page_url = "/home";
}
if(env('HOME_URL') != '') {
Route::get('/', [UserController::class, 'littlelinkhome'])->name('littlelink');
Route::get('/home', [App\Http\Controllers\HomeController::class, 'home'])->name('home');
if(config('advanced-config.disable_home_page') == 'redirect') {
Route::get($custom_home_page_url, function () {return redirect(config('advanced-config.redirect_home_page'));});
}elseif(config('advanced-config.disable_home_page') != 'true') {
Route::get( $custom_home_page_url, [App\Http\Controllers\HomeController::class, 'home'])->name('home');}
} else {
Route::get('/', [App\Http\Controllers\HomeController::class, 'home'])->name('home');
if(config('advanced-config.disable_home_page') == 'redirect') {
Route::get('/', function () {return redirect(config('advanced-config.redirect_home_page'));});
}elseif(config('advanced-config.disable_home_page') != 'true') {
Route::get('/', [App\Http\Controllers\HomeController::class, 'home'])->name('home');}
}
//Redirect if no page URL is set
@ -39,8 +53,9 @@ Route::get('/panel/diagnose', function () {
});
//Public route
$custom_prefix = config('advanced-config.custom_url_prefix');
Route::get('/going/{id?}/{link?}', [UserController::class, 'clickNumber'])->where('link', '.*')->name('clickNumber');
Route::get('/+{littlelink}', [UserController::class, 'littlelink'])->name('littlelink');
Route::get('/' . $custom_prefix . '{littlelink}', [UserController::class, 'littlelink'])->name('littlelink');
Route::get('/@{littlelink}', [UserController::class, 'littlelink'])->name('littlelink');
Route::get('/pages/{name}', [AdminController::class, 'pages'])->name('pages');
Route::get('/theme/@{littlelink}', [UserController::class, 'theme'])->name('theme');

View File

@ -0,0 +1,280 @@
<?php
$analytics =
/*
|--------------------------------------------------------------------------
| Analytics
|--------------------------------------------------------------------------
|
| Add external analytics services to your LittleLink Custom instance by adding them below.
| Everything you enter below will be added to the <head> tag of every page.
| Formatting in plain HTML is expected.
|
*/
<<<EOD
<!----------Insert your analytics code here:---------->
<!--------------------------------------------------->
EOD;;
return [
/*
|--------------------------------------------------------------------------
| Default source repository type
|--------------------------------------------------------------------------
|
| Will only be active if "CUSTOM_META_TAGS" is set to "true" in the config.
| These tags will only be applied to the home page or if a LittleLink page
| is set as the homepage in the config (for example: HOME_URL="admin").
|
| Empty entries will be ignored.
|
*/
'lang' => 'en', // Sets <html lang="en">
'title' => '', // Overrides the default meta page title. Leave empty to use your LittleLink page title as the title.
'description' => '', // Overrides the default meta page description. Leave empty to use your LittleLink page description as the description.
'robots' => 'index,follow',
'viewport' => 'width=device-width, initial-scale=1',
'canonical_url' => '', // Tells search engines to index "https://example.com/"  instead of "https://example.com/@admin",  for example.
'twitter_creator' => '', // Twitter @username. For example: "@elonmusk".
'author' => '', // Your name.
/*
| All settings below are always active
|~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
*/
/*
|--------------------------------------------------------------------------
| Additional settings
|--------------------------------------------------------------------------
|
| Empty entries will be ignored.
|
*/
// Overwrites default theme regardless of preference defined by the operating system, unless manually overwritten by user.
'theme' => '', // Either "dark" or "light".
// Overwrites default theme regardless of preference defined by the operating system, unless manually overwritten by user.
// Overwrites default page title after the LittleLink name on LittleLink pages.
// Example: "admin 🔗 LittleLink Custom"
// ⤌------------------⤍
// ⬑ What you can change with this setting.
'littlelink_title' => '',
// Either "true", "false" or "auth".
// If "auth" is selected, the share button will only be shown to users on their own page.
'display_share_button' => 'true',
// Do not change here!
'analytics' => $analytics, // Set on top of page.
/*
|--------------------------------------------------------------------------
| Custom routes
|--------------------------------------------------------------------------
|
| You can change routes to improve security.
|
*/
'login_url' => '/login',
'register_url' => '/register',
'forgot_password_url' => '/forgot-password',
'custom_home_url' => '/home', // Only applies if you set a "HOME_URL" in the config.
// If 'true' the Home Page will be disabled entirely.
// You will still be able to login on the login page etc.
'disable_home_page' => 'false', // Either 'true', 'false' or 'redirect'.
'redirect_home_page' => 'https://littlelink-custom.com', // Only active if value above is set to 'redirect'.
// The URL prefix is the symbol that comes before a LittleLink URL.
// For example the '@' in 'example.com/@admin'.
// If empty no prefix is required. Use with caution.
'custom_url_prefix' => '+', // The '@' prefix will always work regardless of this setting.
/*
|--------------------------------------------------------------------------
| Footer links
|--------------------------------------------------------------------------
|
| Footer links are the links that are displayed on the bottom of your page, reading: "Home, Terms, Privacy, Contact".
| You can toggle each individual link on or off. 
| You can also set a custom URL for the "Home" link.
|
*/
// Either "true" or "false".
'display_link_home' => 'true',
'display_link_terms' => 'true',
'display_link_privacy' => 'true',
'display_link_contact' => 'true',
// Enter a custom home link (for example, 'https://littlelink-custom.com').
'custom_link_home' => '', // Leave empty to use default value.
// Changes the text on the "Home" link.
'custom_text_home' => 'Home', // Leave empty to use default value.
/*
|--------------------------------------------------------------------------
| Home Page settings
|--------------------------------------------------------------------------
|
| To change footer text on the Home Page, set the setting 'footer' to your preference.
|
| The footer text is the towards the bottom of the Home Page that reads: "and X other buttons ..."
|
| Depending on the amount of buttons on your Home Page, you might want to change this text.
|
| 'default' -> Uses default text.
| 'alt' -> Displays an alternative version based on the Button Editor.
| 'custom' -> Displays your custom text defined with 'custom_footer_text'.
| 'false' -> Removes the footer.
|
*/
'home_footer' => 'default', // Either 'default', 'alt', 'custom' or 'false'.
// You can enter plain text or HTML into this field.
// You can use "{year}" as a placeholder for the current year.
// So "©{year}" would output "©2033" (or whatever the current year is).
'custom_home_footer_text' => '© Copyright {year} - All Rights Reserved',
// Apply a theme to your Home Page.
// Some themes are not compatible with the Home Page. Use at your own discretion.
// Enter the name of a theme located in your "themes" folder (for example, 'galaxy').
'home_theme' => 'default', // Leave empty or enter 'default' to use the default theme.
/*
|--------------------------------------------------------------------------
| Custom Buttons on Home Page
|--------------------------------------------------------------------------
|
| Here you can configure your own buttons for the Home Page.
| You can add or remove as many buttons as you like.
|
| The syntax of the custom buttons is as follows:
|
| array(
| 'button' => '',
| 'link' => '',
| 'title' => '',
| 'icon' => '',
| 'custom_css' => ''
| ),
|
| In the 'button' field, you have to enter the button name (i.e. 'twitter', 'github', 'custom'...).
| You can find a list of all available buttons below.
|
| In the 'link' field, you can enter your desired link you may leave this field empty for a display only, non-functional button.
|
|
|
| The input fields below only apply to buttons such as 'custom' and 'custom_website' but must always be included even if only empty.
|~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
| In the 'title' field, changes the text on a button, such as 'custom' and 'custom_website'.
|
| In the 'icon' field, uses the same syntax as the Button Editor on the Admin Panel.
| This allows you to add your own icons to 'custom' buttons. You can find a list of available icons on llc.bio/fa.
|
| In the 'custom_css' field, here you can enter custom CSS to change the color of your button.
| If you don't feel comfortable working with CSS,
| you can copy and paste the CSS from the 'Custom CSS' field of the Button Editor on the Admin Panel.
|
*/
'use_custom_buttons' => 'true', // Set this to false if you wish to display the old buttons.
'buttons' => array(
array(
'button' => 'github',
'link' => 'https://github.com/JulianPrieber/littlelink-custom',
'title' => '',
'icon' => '',
'custom_css' => ''
),
array(
'button' => 'custom',
'link' => 'https://littlelink-custom.com',
'title' => 'Project Website',
'icon' => 'llc',
'custom_css' => 'color:#ffffff; background-image:linear-gradient(76deg, #f70fff 0%, #11d4de 100%);'),
array(
'button' => 'custom',
'link' => 'https://littlelink-custom.com/sponsor',
'title' => 'Help us out',
'icon' => 'fa-hand-holding-hand',
'custom_css' => 'color:#ffffff; background-image:radial-gradient(circle, #00d2ff 0%, #3a7bd5 95%);'
),
)
/*
|--------------------------------|
| List of Available buttons: |
|--------------------------------|
| 'button' => 'custom' |
| 'button' => 'custom_website' |
| 'button' => 'github' |
| 'button' => 'twitter' |
| 'button' => 'instagram' |
| 'button' => 'facebook' |
| 'button' => 'messenger' |
| 'button' => 'linkedin' |
| 'button' => 'youtube' |
| 'button' => 'discord' |
| 'button' => 'twitch' |
| 'button' => 'snapchat' |
| 'button' => 'spotify' |
| 'button' => 'reddit' |
| 'button' => 'medium' |
| 'button' => 'pinterest' |
| 'button' => 'soundcloud' |
| 'button' => 'figma' |
| 'button' => 'kit' |
| 'button' => 'telegram' |
| 'button' => 'tumblr' |
| 'button' => 'steam' |
| 'button' => 'vimeo' |
| 'button' => 'wordpress' |
| 'button' => 'goodreads' |
| 'button' => 'skoob' |
| 'button' => 'tiktok' |
| 'button' => 'default email' |
| 'button' => 'default email_alt'|
| 'button' => 'bandcamp' |
| 'button' => 'patreon' |
| 'button' => 'signal' |
| 'button' => 'venmo' |
| 'button' => 'cashapp' |
| 'button' => 'gitlab' |
| 'button' => 'mastodon' |
| 'button' => 'paypal' |
| 'button' => 'whatsapp' |
| 'button' => 'xing' |
| 'button' => 'buy me a coffee' |
| 'button' => 'website' |
| 'button' => 'heading' |
| 'button' => 'space' |
|--------------------------------|
*/
];

101
themes/galaxy/animations.css vendored Normal file
View File

@ -0,0 +1,101 @@
/* ************************************************************* */
/*
/* Use this file to add custom CSS animations.
/* Delete this file if you wish to use the default animations.
/* If you do not want to have animations in your theme,
/* remove or comment them and include this file in your theme.
/*
/* ************************************************************* */
/* Table of contents
- Entrance animations
- Button hover animations
- Icon hover animations
- Footer hover animations
*/
/* Entrance animations
*/
.button-entrance {
animation-name: popUp;
animation-duration: 1s;
animation-fill-mode: both;
/* Used to start button entrance animation one after another */
animation-delay: calc(var(--delay)/10);
}
@keyframes popUp {
from {
opacity: 0;
transform: scale3d(0.3, 0.3, 0.3);
}
50% {
opacity: 1;
}
}
.fadein {
animation-name: fadein;
animation-duration: 3s;
animation-fill-mode: both;
}
@keyframes fadein {
from {
opacity: 0;
}
to {
opacity: 1;
}
}
/* Button hover animations
*/
/* (Also apply to icon) */
.button-hover, .credit-hover{
display:inline-block;
-webkit-transform:perspective(1px) translateZ(0);
transform:perspective(1px) translateZ(0);
box-shadow:0 0 1px rgba(0,0,0,0);
-webkit-transition-duration:.1s;
transition-duration:.1s;
-webkit-transition-property:transform;
transition-property:transform
}
.button-hover:active,.credit-hover:active,
.button-hover:focus,.credit-hover:focus,
.button-hover:hover,.credit-hover:hover{
-webkit-transform:scale(1.02);
transform:scale(1.02)
}
/* Footer hover animations
*/
.footer-hover{
display:inline-block;
-webkit-transform:perspective(1px) translateZ(0);
transform:perspective(1px) translateZ(0);
box-shadow:0 0 1px rgba(0,0,0,0);
-webkit-transition-duration:.3s;
transition-duration:.3s;
-webkit-transition-property:transform;
transition-property:transform;
-webkit-transition-timing-function:ease-out;
transition-timing-function:ease-out
}
.footer-hover:active,.footer-hover:focus,.footer-hover:hover{
-webkit-transform:translateY(-8px);
transform:translateY(-8px)
}

View File

@ -2,8 +2,8 @@
Find more themes: https://github.com/JulianPrieber/llc-themes
* Theme Name: Galaxy
* Theme Version: 1.2
* Theme Date: 2022-05-30
* Theme Version: 1.3
* Theme Date: 2022-06-09
* Theme Author: JulianPrieber
* Theme Author URI: https://github.com/JulianPrieber
* Theme License: GPLv3