Init
This commit is contained in:
commit
ecc5e66446
2
.gitattributes
vendored
Normal file
2
.gitattributes
vendored
Normal file
|
|
@ -0,0 +1,2 @@
|
|||
.gitattributes export-ignore
|
||||
/.github/ export-ignore
|
||||
4
.github/FUNDING.yml
vendored
Normal file
4
.github/FUNDING.yml
vendored
Normal file
|
|
@ -0,0 +1,4 @@
|
|||
# These are supported funding model platforms
|
||||
|
||||
github: jeffreyvr
|
||||
custom: ['https://vanrossum.dev/donate']
|
||||
3
.gitignore
vendored
Normal file
3
.gitignore
vendored
Normal file
|
|
@ -0,0 +1,3 @@
|
|||
/node_modules
|
||||
/.idea
|
||||
/.vscode
|
||||
24
404.php
Normal file
24
404.php
Normal file
|
|
@ -0,0 +1,24 @@
|
|||
<!DOCTYPE html>
|
||||
<html <?php language_attributes(); ?> class="no-js">
|
||||
<head>
|
||||
<meta charset="<?php bloginfo( 'charset' ); ?>">
|
||||
<meta name="viewport" content="width=device-width">
|
||||
<link rel="profile" href="http://gmpg.org/xfn/11">
|
||||
|
||||
<?php wp_head(); ?>
|
||||
</head>
|
||||
<body class="antialiased">
|
||||
<div class="md:flex min-h-screen">
|
||||
<div class="w-full md:w-1/2 flex items-center justify-center">
|
||||
<div class="max-w-sm m-8">
|
||||
<div class="text-5xl md:text-15xl text-gray-800 border-primary border-b">404</div>
|
||||
<div class="w-16 h-1 bg-purple-light my-3 md:my-6"></div>
|
||||
<p class="text-gray-800 text-2xl md:text-3xl font-light mb-8"><?php _e( 'Sorry, the page you are looking for could not be found.', 'tailpress' ); ?></p>
|
||||
<a href="<?php echo get_bloginfo( 'url' ); ?>" class="bg-primary px-4 py-2 rounded text-white">
|
||||
<?php _e( 'Go Home', 'tailpress' ); ?>
|
||||
</a>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
||||
103
CHANGELOG.md
Normal file
103
CHANGELOG.md
Normal file
|
|
@ -0,0 +1,103 @@
|
|||
# Changelog
|
||||
|
||||
All notable changes to TailPress will be documented in this file.
|
||||
|
||||
## Unreleased
|
||||
|
||||
## 3.1.0
|
||||
- Tailwind font sizes are now set as defined in `theme.json`.
|
||||
- Breakpoints now based on WordPress defaults (https://developer.wordpress.org/block-editor/reference-guides/packages/packages-viewport/#usage).
|
||||
- Providing `w-content`, `max-w-content`, `w-wide` and `max-w-wide` utility classes.
|
||||
- Content width is now actually the width as defined in `theme.json`.
|
||||
- Fixing align wide, width as defined in `theme.json`.
|
||||
- Updating Tailwind CSS to version 3.1.0.
|
||||
- Fix issues package.json scripts on Windows.
|
||||
|
||||
## 3.0.0 - 2021-12-14
|
||||
|
||||
- Updating Tailwind to 3.0.0.
|
||||
|
||||
### TailPress installer
|
||||
|
||||
- The TailPress installer (^0.2.0) now allows you to use Laravel Mix instead of esbuild by setting --compiler=mix.
|
||||
- You may now also set dbname, dbuser, dbpass and dbhost.
|
||||
|
||||
## 2.0.0 - 2021-09-03
|
||||
|
||||
- Switching to Tailwind CLI and esbuild instead of LaraveL Mix.
|
||||
- Removing `theme` subdirectory setup as it is no longer needed with the new build setup.
|
||||
- Removing `TailPress` class and it's functions (`tailpress()->get_header()` etc.) throughout the theme.
|
||||
- New `tailpress_asset` function to get the URL of an asset (previously `tailpress_mix`).
|
||||
- `tailpress_asset` function thaty appends a `time` parameter if [wp_get_environment_type()](https://developer.wordpress.org/reference/functions/wp_get_environment_type/) does not return `production` for cache busting (instead of the previously used versioned assets through `mix-manifest.json`).
|
||||
- Update screenshot.png.
|
||||
- Remove `block-editor.css`, only use `editor-style.css`.
|
||||
- Moving `editor-style.css` from root to `css` directory.
|
||||
- Update readme.
|
||||
|
||||
## 1.0.0 - 2021-08-25
|
||||
|
||||
- Replace `tailpress.json` with `theme.json` as used by WordPress core.
|
||||
- Move template files into `theme` subdirectory.
|
||||
- Move tailwind plugin to a [separate repository](https://github.com/jeffreyvr/tailwindcss-tailpress).
|
||||
- Update readme and adding section on using installer.
|
||||
|
||||
## 0.1.0 - 2021-06-17
|
||||
|
||||
- No longer depending on jQuery.
|
||||
- Fixes text color classes for the Block Editor.
|
||||
- Use safelist.txt to prevent WP classes from being purged.
|
||||
- Readme changes.
|
||||
- MIT License.
|
||||
|
||||
## 0.0.9 - 2021-04-05
|
||||
|
||||
- Updating to Tailwind CSS v2.1 which includes the JIT engine in core among other things.
|
||||
|
||||
## 0.0.8 - 2021-03-23
|
||||
|
||||
- Using TailwindCSS JIT for way faster compiling.
|
||||
- Updated readme.
|
||||
- Fix loading styling in block editor.
|
||||
- Check if mix-manifest.json file exists to prevent warning message.
|
||||
|
||||
## 0.0.7 - 2021-02-15
|
||||
|
||||
- Adding the option to apply submenu_class to the wp_nav_menu args.
|
||||
- Adding the option to apply classes on li_class and submenu_class on specific depths, like: li_class_0.
|
||||
|
||||
### 0.0.6 - 2021-02-08
|
||||
|
||||
- Fixes issue on Windows.
|
||||
|
||||
## 0.0.5 - 2020-12-24
|
||||
|
||||
- Set selectors on single line since this seems to cause issues (nested CSS) with production build (#241a612).
|
||||
|
||||
## 0.0.4 - 2020-12-23
|
||||
|
||||
- Add nested CSS support for PostCSS.
|
||||
- Minor readme changes.
|
||||
|
||||
## 0.0.3 - 2020-12-22
|
||||
|
||||
- Update Laravel Mix from version 5^ to 6^.
|
||||
- Removing Laravel Mix Tailwind, defining plugins within webpack.mix.js instead.
|
||||
- Switching from Sass to PostCSS for faster compiling.
|
||||
- Moved TailPress colors and font size settings to tailpress.json file.
|
||||
- Use tailpress.json to populate editor-color-palette and editor-font-sizes theme support automatically.
|
||||
- New screenshot.
|
||||
- Update readme.
|
||||
- Other minor fixes and improvements.
|
||||
|
||||
## 0.0.2 - 2020-11-24
|
||||
|
||||
- Adding basic support for the block editor Gutenberg by generating alignment, font size and color classes.
|
||||
Contains four theme colors out of the box, being primary, secondary, dark and light. This is adjustable of course.
|
||||
- Loading a editor-style.css.
|
||||
- Removing double slashes on resulting manifest asset URLs.
|
||||
- Modified template files to have a better starting point (including horizontal main navigation, footer always at the bottom for short pages).
|
||||
- Added a basic 404 page template.
|
||||
|
||||
## 0.0.1 - 2020-11-19
|
||||
|
||||
- Init release.
|
||||
21
LICENSE
Normal file
21
LICENSE
Normal file
|
|
@ -0,0 +1,21 @@
|
|||
MIT License
|
||||
|
||||
Copyright (c) Jeffrey van Rossum <jeffrey@vanrossum.dev>
|
||||
|
||||
Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||
of this software and associated documentation files (the "Software"), to deal
|
||||
in the Software without restriction, including without limitation the rights
|
||||
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
||||
copies of the Software, and to permit persons to whom the Software is
|
||||
furnished to do so, subject to the following conditions:
|
||||
|
||||
The above copyright notice and this permission notice shall be included in all
|
||||
copies or substantial portions of the Software.
|
||||
|
||||
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
||||
SOFTWARE.
|
||||
101
README.MD
Normal file
101
README.MD
Normal file
|
|
@ -0,0 +1,101 @@
|
|||
<p><img src="http://tailpress.io/images/tailpress100.svg" width="260" alt="TailPress"></p>
|
||||
|
||||
[](https://github.com/jeffreyvr/tailpress/releases/)
|
||||
[](#license)
|
||||
[](https://github.com/jeffreyvr/tailpress/issues)
|
||||
|
||||
# Introduction
|
||||
|
||||
TailPress is a minimal boilerplate theme for WordPress using [Tailwind CSS](https://tailwindcss.com/).
|
||||
|
||||
## Getting started
|
||||
|
||||
### Using the installer
|
||||
|
||||
You can get started using the installer (using composer):
|
||||
|
||||
```bash
|
||||
composer global require jeffreyvanrossum/tailpress-installer
|
||||
|
||||
tailpress new example-theme
|
||||
```
|
||||
|
||||
*If you haven't already, make sure to place the `~/.composer/vendor/bin` directory in your `PATH` so the tailpress executable is found when you run the tailpress command in your terminal.*
|
||||
|
||||
You can optionally set the theme name.
|
||||
|
||||
```bash
|
||||
tailpress new example-theme --name="Example Theme"
|
||||
```
|
||||
|
||||
By default, TailPress uses esbuild and Tailwind's CLI for compiling. Rather use Laravel Mix?
|
||||
|
||||
```bash
|
||||
tailpress new example-theme --compiler="mix"
|
||||
```
|
||||
|
||||
You can also initialize a new Git repository (branch defaults to `main`):
|
||||
|
||||
```bash
|
||||
tailpress new example-theme --name="Example Theme" --git --branch="main"
|
||||
```
|
||||
|
||||
Once your theme is ready, don't forget to cd into the directory.
|
||||
|
||||
You will be asked if you would like to have WordPress installed as well. Keep in mind that you still need a local development environment for PHP and MySQL.
|
||||
|
||||
### Regular method
|
||||
|
||||
* Clone repo `git clone https://github.com/jeffreyvr/tailpress.git && cd tailpress`
|
||||
* Run `rm -rf .git` to remove git (or `rmdir .git` for Windows)
|
||||
* Run `npm install`
|
||||
* Run `npm run watch` to start developing
|
||||
|
||||
### General
|
||||
|
||||
TailPress uses the [Tailwind CLI](https://tailwindcss.com/docs/installation#using-tailwind-cli), [PostCSS](https://postcss.org) and [esbuild](https://esbuild.github.io).
|
||||
|
||||
You will find the editable CSS and Javascript files within the `/resources` folder.
|
||||
|
||||
Before you use your theme in production, make sure you run `npm run production`.
|
||||
|
||||
## NPM Scripts
|
||||
|
||||
There are several NPM scripts available. You'll find the full list in the `package.json` file under "scripts". A script is executed through the terminal by running `npm run script-name`.
|
||||
|
||||
| Script | Description |
|
||||
|------------|--------------------------------------------------------------------------------|
|
||||
| production | Creates a production (minified) build of app.js, app.css and editor-style.css. |
|
||||
| dev | Creates a development build of app.js, app.css and editor-style.css. |
|
||||
| watch | Runs several watch scripts concurrently. |
|
||||
| watch-sync | Runs several watch scripts concurrently and starts `browser-sync`. |
|
||||
|
||||
## Block editor support
|
||||
|
||||
TailPress comes with support for the [block editor](https://wordpress.org/support/article/wordpress-editor/).
|
||||
|
||||
A basic setup for `theme.json` is included. This also means that you need to at least use WordPress 5.8. If you wan't to support earlier WordPress versions, you can use an [older version](https://github.com/jeffreyvr/tailpress/tree/0.1.1) of TailPress instead.
|
||||
|
||||
CSS-classes for alignment (full, wide etc.) are generated automatically. You can opt-out on this by removing the plugin from the `tailwind.config.js` file.
|
||||
|
||||
To make the editing experience within the block editor more in line with the front end styling, a `editor-style.css` is generated.
|
||||
|
||||
### Define theme colors and font sizes
|
||||
|
||||
Several colors and font sizes are defined from the beginning. You can modify them in `theme.json`.
|
||||
|
||||
## Links
|
||||
|
||||
* [TailPress website](https://tailpress.io)
|
||||
* [Screencasts](https://www.youtube.com/playlist?list=PL6GBdOp044SHIOSCZejodwr1HcYsC43wG)
|
||||
* [Tailwind CSS Documentation](https://tailwindcss.com/docs)
|
||||
* [Esbuild Documentation](https://esbuild.github.io)
|
||||
|
||||
## Contributors
|
||||
|
||||
* [Jeffrey van Rossum](https://github.com/jeffreyvr)
|
||||
* [All contributors](https://github.com/jeffreyvr/tailpress/graphs/contributors)
|
||||
|
||||
## License
|
||||
|
||||
MIT. Please see the [License File](/LICENSE) for more information.
|
||||
74
comments.php
Normal file
74
comments.php
Normal file
|
|
@ -0,0 +1,74 @@
|
|||
<?php
|
||||
/**
|
||||
* If the current post is protected by a password and
|
||||
* the visitor has not yet entered the password we will
|
||||
* return early without loading the comments.
|
||||
*/
|
||||
if ( post_password_required() ) {
|
||||
return;
|
||||
}
|
||||
?>
|
||||
|
||||
<div id="comments" class="comments-area my-8">
|
||||
|
||||
<?php if ( have_comments() ) : ?>
|
||||
<h2 class="comments-title">
|
||||
<?php
|
||||
printf(
|
||||
_nx( 'One comment', '%1$s comments', get_comments_number(), 'comments title', 'tailpress' ),
|
||||
number_format_i18n( get_comments_number() ),
|
||||
get_the_title()
|
||||
);
|
||||
?>
|
||||
</h2>
|
||||
|
||||
<ol class="comment-list">
|
||||
<?php
|
||||
wp_list_comments(
|
||||
array(
|
||||
'style' => 'ol',
|
||||
'short_ping' => true,
|
||||
'avatar_size' => 56,
|
||||
)
|
||||
);
|
||||
?>
|
||||
</ol>
|
||||
|
||||
<?php endif; ?>
|
||||
|
||||
<?php if ( get_comment_pages_count() > 1 && get_option( 'page_comments' ) ) : ?>
|
||||
|
||||
<nav class="comment-navigation" id="comment-nav-above">
|
||||
|
||||
<h1 class="screen-reader-text"><?php esc_html_e( 'Comment navigation', 'tailpress' ); ?></h1>
|
||||
|
||||
<?php if ( get_previous_comments_link() ) { ?>
|
||||
<div class="nav-previous">
|
||||
<?php previous_comments_link( __( '← Older Comments', 'tailpress' ) ); ?>
|
||||
</div>
|
||||
<?php } ?>
|
||||
|
||||
<?php if ( get_next_comments_link() ) { ?>
|
||||
<div class="nav-next">
|
||||
<?php next_comments_link( __( 'Newer Comments →', 'tailpress' ) ); ?>
|
||||
</div>
|
||||
<?php } ?>
|
||||
|
||||
</nav><!-- #comment-nav-above -->
|
||||
|
||||
<?php endif; ?>
|
||||
|
||||
<?php if ( ! comments_open() && get_comments_number() && post_type_supports( get_post_type(), 'comments' ) ) : ?>
|
||||
<p class="no-comments"><?php esc_html_e( 'Comments are closed.', 'tailpress' ); ?></p>
|
||||
<?php endif; ?>
|
||||
|
||||
<?php
|
||||
comment_form(
|
||||
array(
|
||||
'class_submit' => 'bg-primary text-white cursor-pointer rounded font-bold py-2 px-4',
|
||||
'comment_field' => '<textarea id="comment" name="comment" class="bg-gray-200 w-full py-2 px-3" aria-required="true"></textarea>',
|
||||
)
|
||||
);
|
||||
?>
|
||||
|
||||
</div>
|
||||
1176
css/app.css
Normal file
1176
css/app.css
Normal file
File diff suppressed because it is too large
Load Diff
587
css/editor-style.css
Normal file
587
css/editor-style.css
Normal file
|
|
@ -0,0 +1,587 @@
|
|||
.container {
|
||||
width: 100%;
|
||||
padding-right: 1rem;
|
||||
padding-left: 1rem
|
||||
}
|
||||
|
||||
@media (min-width: 480px) {
|
||||
.container {
|
||||
max-width: 480px
|
||||
}
|
||||
}
|
||||
|
||||
@media (min-width: 600px) {
|
||||
.container {
|
||||
max-width: 600px;
|
||||
padding-right: 2rem;
|
||||
padding-left: 2rem
|
||||
}
|
||||
}
|
||||
|
||||
@media (min-width: 782px) {
|
||||
.container {
|
||||
max-width: 782px
|
||||
}
|
||||
}
|
||||
|
||||
@media (min-width: 960px) {
|
||||
.container {
|
||||
max-width: 960px;
|
||||
padding-right: 0rem;
|
||||
padding-left: 0rem
|
||||
}
|
||||
}
|
||||
|
||||
@media (min-width: 1280px) {
|
||||
.container {
|
||||
max-width: 1280px
|
||||
}
|
||||
}
|
||||
|
||||
@media (min-width: 1440px) {
|
||||
.container {
|
||||
max-width: 1440px
|
||||
}
|
||||
}
|
||||
|
||||
.m-8 {
|
||||
margin: 2rem
|
||||
}
|
||||
|
||||
.my-3 {
|
||||
margin-top: 0.75rem;
|
||||
margin-bottom: 0.75rem
|
||||
}
|
||||
|
||||
.my-8 {
|
||||
margin-top: 2rem;
|
||||
margin-bottom: 2rem
|
||||
}
|
||||
|
||||
.mx-auto {
|
||||
margin-left: auto;
|
||||
margin-right: auto
|
||||
}
|
||||
|
||||
.my-12 {
|
||||
margin-top: 3rem;
|
||||
margin-bottom: 3rem
|
||||
}
|
||||
|
||||
.my-4 {
|
||||
margin-top: 1rem;
|
||||
margin-bottom: 1rem
|
||||
}
|
||||
|
||||
.mb-8 {
|
||||
margin-bottom: 2rem
|
||||
}
|
||||
|
||||
.mt-4 {
|
||||
margin-top: 1rem
|
||||
}
|
||||
|
||||
.mb-10 {
|
||||
margin-bottom: 2.5rem
|
||||
}
|
||||
|
||||
.mb-4 {
|
||||
margin-bottom: 1rem
|
||||
}
|
||||
|
||||
.mb-1 {
|
||||
margin-bottom: 0.25rem
|
||||
}
|
||||
|
||||
.mb-12 {
|
||||
margin-bottom: 3rem
|
||||
}
|
||||
|
||||
.inline-block {
|
||||
display: inline-block
|
||||
}
|
||||
|
||||
.flex {
|
||||
display: flex
|
||||
}
|
||||
|
||||
.hidden {
|
||||
display: none
|
||||
}
|
||||
|
||||
.h-1 {
|
||||
height: 0.25rem
|
||||
}
|
||||
|
||||
.h-6 {
|
||||
height: 1.5rem
|
||||
}
|
||||
|
||||
.min-h-screen {
|
||||
min-height: 100vh
|
||||
}
|
||||
|
||||
.w-full {
|
||||
width: 100%
|
||||
}
|
||||
|
||||
.w-16 {
|
||||
width: 4rem
|
||||
}
|
||||
|
||||
.w-6 {
|
||||
width: 1.5rem
|
||||
}
|
||||
|
||||
.max-w-sm {
|
||||
max-width: 24rem
|
||||
}
|
||||
|
||||
.max-w-screen-lg {
|
||||
max-width: 960px
|
||||
}
|
||||
|
||||
.flex-none {
|
||||
flex: none
|
||||
}
|
||||
|
||||
.flex-grow {
|
||||
flex-grow: 1
|
||||
}
|
||||
|
||||
.cursor-pointer {
|
||||
cursor: pointer
|
||||
}
|
||||
|
||||
.list-disc {
|
||||
list-style-type: disc
|
||||
}
|
||||
|
||||
.list-decimal {
|
||||
list-style-type: decimal
|
||||
}
|
||||
|
||||
.flex-col {
|
||||
flex-direction: column
|
||||
}
|
||||
|
||||
.items-center {
|
||||
align-items: center
|
||||
}
|
||||
|
||||
.justify-center {
|
||||
justify-content: center
|
||||
}
|
||||
|
||||
.justify-between {
|
||||
justify-content: space-between
|
||||
}
|
||||
|
||||
.rounded {
|
||||
border-radius: 0.25rem
|
||||
}
|
||||
|
||||
.rounded-xl {
|
||||
border-radius: 0.75rem
|
||||
}
|
||||
|
||||
.border {
|
||||
border-width: 1px
|
||||
}
|
||||
|
||||
.border-b {
|
||||
border-bottom-width: 1px
|
||||
}
|
||||
|
||||
.border-primary {
|
||||
--tw-border-opacity: 1;
|
||||
border-color: rgb(14 165 233 / var(--tw-border-opacity))
|
||||
}
|
||||
|
||||
.border-transparent {
|
||||
border-color: transparent
|
||||
}
|
||||
|
||||
.bg-primary {
|
||||
--tw-bg-opacity: 1;
|
||||
background-color: rgb(14 165 233 / var(--tw-bg-opacity))
|
||||
}
|
||||
|
||||
.bg-gray-200 {
|
||||
--tw-bg-opacity: 1;
|
||||
background-color: rgb(229 231 235 / var(--tw-bg-opacity))
|
||||
}
|
||||
|
||||
.bg-gray-50 {
|
||||
--tw-bg-opacity: 1;
|
||||
background-color: rgb(249 250 251 / var(--tw-bg-opacity))
|
||||
}
|
||||
|
||||
.bg-white {
|
||||
--tw-bg-opacity: 1;
|
||||
background-color: rgb(255 255 255 / var(--tw-bg-opacity))
|
||||
}
|
||||
|
||||
.bg-gray-100 {
|
||||
--tw-bg-opacity: 1;
|
||||
background-color: rgb(243 244 246 / var(--tw-bg-opacity))
|
||||
}
|
||||
|
||||
.bg-gray-900 {
|
||||
--tw-bg-opacity: 1;
|
||||
background-color: rgb(17 24 39 / var(--tw-bg-opacity))
|
||||
}
|
||||
|
||||
.p-4 {
|
||||
padding: 1rem
|
||||
}
|
||||
|
||||
.px-4 {
|
||||
padding-left: 1rem;
|
||||
padding-right: 1rem
|
||||
}
|
||||
|
||||
.py-2 {
|
||||
padding-top: 0.5rem;
|
||||
padding-bottom: 0.5rem
|
||||
}
|
||||
|
||||
.px-3 {
|
||||
padding-left: 0.75rem;
|
||||
padding-right: 0.75rem
|
||||
}
|
||||
|
||||
.py-12 {
|
||||
padding-top: 3rem;
|
||||
padding-bottom: 3rem
|
||||
}
|
||||
|
||||
.py-6 {
|
||||
padding-top: 1.5rem;
|
||||
padding-bottom: 1.5rem
|
||||
}
|
||||
|
||||
.py-3 {
|
||||
padding-top: 0.75rem;
|
||||
padding-bottom: 0.75rem
|
||||
}
|
||||
|
||||
.px-6 {
|
||||
padding-left: 1.5rem;
|
||||
padding-right: 1.5rem
|
||||
}
|
||||
|
||||
.pb-12 {
|
||||
padding-bottom: 3rem
|
||||
}
|
||||
|
||||
.text-center {
|
||||
text-align: center
|
||||
}
|
||||
|
||||
.text-5xl {
|
||||
font-size: 3rem;
|
||||
line-height: 1
|
||||
}
|
||||
|
||||
.text-2xl {
|
||||
font-size: 1.5rem;
|
||||
line-height: 2rem
|
||||
}
|
||||
|
||||
.text-lg {
|
||||
font-size: 1.125rem;
|
||||
line-height: 1.75rem
|
||||
}
|
||||
|
||||
.text-sm {
|
||||
font-size: 0.875rem;
|
||||
line-height: 1.25rem
|
||||
}
|
||||
|
||||
.text-3xl {
|
||||
font-size: 1.875rem;
|
||||
line-height: 2.25rem
|
||||
}
|
||||
|
||||
.font-light {
|
||||
font-weight: 300
|
||||
}
|
||||
|
||||
.font-bold {
|
||||
font-weight: 700
|
||||
}
|
||||
|
||||
.font-extrabold {
|
||||
font-weight: 800
|
||||
}
|
||||
|
||||
.font-medium {
|
||||
font-weight: 500
|
||||
}
|
||||
|
||||
.font-semibold {
|
||||
font-weight: 600
|
||||
}
|
||||
|
||||
.uppercase {
|
||||
text-transform: uppercase
|
||||
}
|
||||
|
||||
.leading-6 {
|
||||
line-height: 1.5rem
|
||||
}
|
||||
|
||||
.leading-tight {
|
||||
line-height: 1.25
|
||||
}
|
||||
|
||||
.tracking-tight {
|
||||
letter-spacing: -0.025em
|
||||
}
|
||||
|
||||
.text-gray-800 {
|
||||
--tw-text-opacity: 1;
|
||||
color: rgb(31 41 55 / var(--tw-text-opacity))
|
||||
}
|
||||
|
||||
.text-white {
|
||||
--tw-text-opacity: 1;
|
||||
color: rgb(255 255 255 / var(--tw-text-opacity))
|
||||
}
|
||||
|
||||
.text-gray-500 {
|
||||
--tw-text-opacity: 1;
|
||||
color: rgb(107 114 128 / var(--tw-text-opacity))
|
||||
}
|
||||
|
||||
.text-gray-900 {
|
||||
--tw-text-opacity: 1;
|
||||
color: rgb(17 24 39 / var(--tw-text-opacity))
|
||||
}
|
||||
|
||||
.text-gray-600 {
|
||||
--tw-text-opacity: 1;
|
||||
color: rgb(75 85 99 / var(--tw-text-opacity))
|
||||
}
|
||||
|
||||
.text-secondary {
|
||||
--tw-text-opacity: 1;
|
||||
color: rgb(20 184 166 / var(--tw-text-opacity))
|
||||
}
|
||||
|
||||
.text-primary {
|
||||
--tw-text-opacity: 1;
|
||||
color: rgb(14 165 233 / var(--tw-text-opacity))
|
||||
}
|
||||
|
||||
.text-gray-700 {
|
||||
--tw-text-opacity: 1;
|
||||
color: rgb(55 65 81 / var(--tw-text-opacity))
|
||||
}
|
||||
|
||||
.text-blue-500 {
|
||||
--tw-text-opacity: 1;
|
||||
color: rgb(59 130 246 / var(--tw-text-opacity))
|
||||
}
|
||||
|
||||
.underline {
|
||||
-webkit-text-decoration-line: underline;
|
||||
text-decoration-line: underline
|
||||
}
|
||||
|
||||
.antialiased {
|
||||
-webkit-font-smoothing: antialiased;
|
||||
-moz-osx-font-smoothing: grayscale
|
||||
}
|
||||
|
||||
.transition-colors {
|
||||
transition-property: color, background-color, border-color, fill, stroke, -webkit-text-decoration-color;
|
||||
transition-property: color, background-color, border-color, text-decoration-color, fill, stroke;
|
||||
transition-property: color, background-color, border-color, text-decoration-color, fill, stroke, -webkit-text-decoration-color;
|
||||
transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);
|
||||
transition-duration: 150ms
|
||||
}
|
||||
|
||||
.duration-200 {
|
||||
transition-duration: 200ms
|
||||
}
|
||||
|
||||
.alignfull {
|
||||
margin: 2rem calc(50% - 50vw) !important;
|
||||
max-width: 100vw !important;
|
||||
width: 100vw
|
||||
}
|
||||
|
||||
.alignwide {
|
||||
margin: 2rem 0;
|
||||
max-width: 1280px !important
|
||||
}
|
||||
|
||||
.alignnone {
|
||||
margin-left: 0px;
|
||||
margin-right: 0px;
|
||||
height: auto;
|
||||
max-width: 100%
|
||||
}
|
||||
|
||||
.aligncenter {
|
||||
margin: 0.5rem auto;
|
||||
display: block
|
||||
}
|
||||
|
||||
@media (min-width: 600px) {
|
||||
.alignleft:not(.wp-block-button) {
|
||||
margin-right: 0.5rem;
|
||||
float: left
|
||||
}
|
||||
|
||||
.alignright:not(.wp-block-button) {
|
||||
margin-left: 0.5rem;
|
||||
float: right
|
||||
}
|
||||
|
||||
.wp-block-button.alignleft a {
|
||||
float: left;
|
||||
margin-right: 1rem
|
||||
}
|
||||
|
||||
.wp-block-button.alignright a {
|
||||
float: right;
|
||||
margin-left: 1rem
|
||||
}
|
||||
}
|
||||
|
||||
.wp-caption {
|
||||
display: inline-block
|
||||
}
|
||||
|
||||
.wp-caption img {
|
||||
margin-bottom: 0.5rem;
|
||||
line-height: 1
|
||||
}
|
||||
|
||||
.wp-caption-text {
|
||||
font-size: 0.875rem;
|
||||
color: #4b5563
|
||||
}
|
||||
|
||||
body {
|
||||
font-family: ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, "Noto Sans", sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji"
|
||||
}
|
||||
|
||||
.wp-block {
|
||||
max-width: 1280px
|
||||
}
|
||||
|
||||
.wp-block[data-align=wide] {
|
||||
max-width: 1280px
|
||||
}
|
||||
|
||||
.wp-block[data-align=full] {
|
||||
max-width: 100%
|
||||
}
|
||||
|
||||
.focus\:outline-none:focus {
|
||||
outline: 2px solid transparent;
|
||||
outline-offset: 2px
|
||||
}
|
||||
|
||||
.focus\:ring-2:focus {
|
||||
--tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);
|
||||
--tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color);
|
||||
box-shadow: var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow, 0 0 #0000)
|
||||
}
|
||||
|
||||
.focus\:ring-gray-900:focus {
|
||||
--tw-ring-opacity: 1;
|
||||
--tw-ring-color: rgb(17 24 39 / var(--tw-ring-opacity))
|
||||
}
|
||||
|
||||
.focus\:ring-offset-2:focus {
|
||||
--tw-ring-offset-width: 2px
|
||||
}
|
||||
|
||||
.focus\:ring-offset-white:focus {
|
||||
--tw-ring-offset-color: #fff
|
||||
}
|
||||
|
||||
@media (min-width: 600px) {
|
||||
.sm\:w-auto {
|
||||
width: auto
|
||||
}
|
||||
}
|
||||
|
||||
@media (min-width: 782px) {
|
||||
.md\:my-6 {
|
||||
margin-top: 1.5rem;
|
||||
margin-bottom: 1.5rem
|
||||
}
|
||||
|
||||
.md\:flex {
|
||||
display: flex
|
||||
}
|
||||
|
||||
.md\:w-1\/2 {
|
||||
width: 50%
|
||||
}
|
||||
|
||||
.md\:text-3xl {
|
||||
font-size: 1.875rem;
|
||||
line-height: 2.25rem
|
||||
}
|
||||
}
|
||||
|
||||
@media (min-width: 960px) {
|
||||
.lg\:-mx-4 {
|
||||
margin-left: -1rem;
|
||||
margin-right: -1rem
|
||||
}
|
||||
|
||||
.lg\:mx-4 {
|
||||
margin-left: 1rem;
|
||||
margin-right: 1rem
|
||||
}
|
||||
|
||||
.lg\:mt-0 {
|
||||
margin-top: 0px
|
||||
}
|
||||
|
||||
.lg\:block {
|
||||
display: block
|
||||
}
|
||||
|
||||
.lg\:flex {
|
||||
display: flex
|
||||
}
|
||||
|
||||
.lg\:hidden {
|
||||
display: none
|
||||
}
|
||||
|
||||
.lg\:items-center {
|
||||
align-items: center
|
||||
}
|
||||
|
||||
.lg\:justify-between {
|
||||
justify-content: space-between
|
||||
}
|
||||
|
||||
.lg\:bg-transparent {
|
||||
background-color: transparent
|
||||
}
|
||||
|
||||
.lg\:p-0 {
|
||||
padding: 0px
|
||||
}
|
||||
|
||||
.lg\:text-7xl {
|
||||
font-size: 4.5rem;
|
||||
line-height: 1
|
||||
}
|
||||
|
||||
.lg\:text-5xl {
|
||||
font-size: 3rem;
|
||||
line-height: 1
|
||||
}
|
||||
}
|
||||
23
footer.php
Normal file
23
footer.php
Normal file
|
|
@ -0,0 +1,23 @@
|
|||
|
||||
</main>
|
||||
|
||||
<?php do_action( 'tailpress_content_end' ); ?>
|
||||
|
||||
</div>
|
||||
|
||||
<?php do_action( 'tailpress_content_after' ); ?>
|
||||
|
||||
<footer id="colophon" class="site-footer bg-gray-50 py-12" role="contentinfo">
|
||||
<?php do_action( 'tailpress_footer' ); ?>
|
||||
|
||||
<div class="container mx-auto text-center text-gray-500">
|
||||
© <?php echo date_i18n( 'Y' );?> - <?php echo get_bloginfo( 'name' );?>
|
||||
</div>
|
||||
</footer>
|
||||
|
||||
</div>
|
||||
|
||||
<?php wp_footer(); ?>
|
||||
|
||||
</body>
|
||||
</html>
|
||||
17
front-page.php
Executable file
17
front-page.php
Executable file
|
|
@ -0,0 +1,17 @@
|
|||
<?php get_header(); ?>
|
||||
|
||||
|
||||
<?php if ( have_posts() ) : ?>
|
||||
<?php
|
||||
while ( have_posts() ) :
|
||||
the_post();
|
||||
the_content();
|
||||
?>
|
||||
|
||||
|
||||
<?php endwhile; ?>
|
||||
|
||||
<?php endif; ?>
|
||||
|
||||
<?php
|
||||
get_footer();
|
||||
126
functions.php
Normal file
126
functions.php
Normal file
|
|
@ -0,0 +1,126 @@
|
|||
<?php
|
||||
|
||||
/**
|
||||
* Theme setup.
|
||||
*/
|
||||
function tailpress_setup() {
|
||||
|
||||
// ##### Setup 🡒 Navigation
|
||||
|
||||
register_nav_menus(
|
||||
array(
|
||||
'primary' => __( 'Primary Menu', 'tailpress' ),
|
||||
)
|
||||
);
|
||||
|
||||
// ##### Setup 🡒 Ajout des themes supports
|
||||
|
||||
add_theme_support(
|
||||
'html5',
|
||||
array(
|
||||
'search-form',
|
||||
'comment-form',
|
||||
'comment-list',
|
||||
'gallery',
|
||||
'caption',
|
||||
)
|
||||
);
|
||||
add_theme_support( 'title-tag' );
|
||||
add_theme_support( 'custom-logo' );
|
||||
add_theme_support( 'post-thumbnails' );
|
||||
|
||||
add_theme_support( 'align-wide' );
|
||||
add_theme_support( 'wp-block-styles' );
|
||||
|
||||
add_theme_support( 'editor-styles' );
|
||||
add_editor_style( 'css/editor-style.css' );
|
||||
}
|
||||
|
||||
add_action( 'after_setup_theme', 'tailpress_setup' );
|
||||
|
||||
|
||||
// ##### Enqueue Theme assets 🡒 Front
|
||||
|
||||
function tailpress_enqueue_scripts() {
|
||||
$theme = wp_get_theme();
|
||||
|
||||
wp_enqueue_style( 'tailpress', tailpress_asset( 'css/app.css' ), array(), $theme->get( 'Version' ) );
|
||||
wp_enqueue_script( 'tailpress', tailpress_asset( 'js/app.js' ), array(), $theme->get( 'Version' ) );
|
||||
}
|
||||
|
||||
|
||||
// ##### Enqueue Theme assets 🡒 Back
|
||||
|
||||
function enqueue_gutenberg_back_styles() {
|
||||
// wp_enqueue_style( 'tailpress_back', tailpress_asset( 'css/app.css' ), array() );
|
||||
}
|
||||
add_action( 'enqueue_block_editor_assets', 'enqueue_gutenberg_back_styles' );
|
||||
|
||||
|
||||
add_action( 'wp_enqueue_scripts', 'tailpress_enqueue_scripts' );
|
||||
|
||||
/**
|
||||
* Get asset path.
|
||||
*
|
||||
* @param string $path Path to asset.
|
||||
*
|
||||
* @return string
|
||||
*/
|
||||
function tailpress_asset( $path ) {
|
||||
if ( wp_get_environment_type() === 'production' ) {
|
||||
return get_stylesheet_directory_uri() . '/' . $path;
|
||||
}
|
||||
|
||||
return add_query_arg( 'time', time(), get_stylesheet_directory_uri() . '/' . $path );
|
||||
}
|
||||
|
||||
/**
|
||||
* Adds option 'li_class' to 'wp_nav_menu'.
|
||||
*
|
||||
* @param string $classes String of classes.
|
||||
* @param mixed $item The curren item.
|
||||
* @param WP_Term $args Holds the nav menu arguments.
|
||||
*
|
||||
* @return array
|
||||
*/
|
||||
function tailpress_nav_menu_add_li_class( $classes, $item, $args, $depth ) {
|
||||
if ( isset( $args->li_class ) ) {
|
||||
$classes[] = $args->li_class;
|
||||
}
|
||||
|
||||
if ( isset( $args->{"li_class_$depth"} ) ) {
|
||||
$classes[] = $args->{"li_class_$depth"};
|
||||
}
|
||||
|
||||
return $classes;
|
||||
}
|
||||
|
||||
add_filter( 'nav_menu_css_class', 'tailpress_nav_menu_add_li_class', 10, 4 );
|
||||
|
||||
/**
|
||||
* Adds option 'submenu_class' to 'wp_nav_menu'.
|
||||
*
|
||||
* @param string $classes String of classes.
|
||||
* @param mixed $item The curren item.
|
||||
* @param WP_Term $args Holds the nav menu arguments.
|
||||
*
|
||||
* @return array
|
||||
*/
|
||||
function tailpress_nav_menu_add_submenu_class( $classes, $args, $depth ) {
|
||||
if ( isset( $args->submenu_class ) ) {
|
||||
$classes[] = $args->submenu_class;
|
||||
}
|
||||
|
||||
if ( isset( $args->{"submenu_class_$depth"} ) ) {
|
||||
$classes[] = $args->{"submenu_class_$depth"};
|
||||
}
|
||||
|
||||
return $classes;
|
||||
}
|
||||
|
||||
add_filter( 'nav_menu_submenu_css_class', 'tailpress_nav_menu_add_submenu_class', 10, 3 );
|
||||
|
||||
|
||||
// require_once( __DIR__ . '/includes/errorlog.php');
|
||||
require_once( __DIR__ . '/includes/blocks.php');
|
||||
// require_once( __DIR__ . '/includes/logos.php');
|
||||
79
header.php
Normal file
79
header.php
Normal file
|
|
@ -0,0 +1,79 @@
|
|||
<!DOCTYPE html>
|
||||
<html <?php language_attributes(); ?>>
|
||||
<head>
|
||||
<meta charset="<?php bloginfo( 'charset' ); ?>">
|
||||
<meta name="viewport" content="width=device-width">
|
||||
<link rel="profile" href="http://gmpg.org/xfn/11">
|
||||
<link rel="pingback" href="<?php bloginfo( 'pingback_url' ); ?>">
|
||||
|
||||
<?php wp_head(); ?>
|
||||
</head>
|
||||
|
||||
<body <?php body_class( 'bg-white text-gray-900 antialiased' ); ?>>
|
||||
|
||||
<?php do_action( 'tailpress_site_before' ); ?>
|
||||
|
||||
<div id="page" class="min-h-screen flex flex-col">
|
||||
|
||||
<?php do_action( 'tailpress_header' ); ?>
|
||||
|
||||
<header>
|
||||
|
||||
<div class="mx-auto container">
|
||||
<div class="lg:flex lg:justify-between lg:items-center border-b py-6">
|
||||
<div class="flex justify-between items-center">
|
||||
<div>
|
||||
<?php if ( has_custom_logo() ) { ?>
|
||||
<?php the_custom_logo(); ?>
|
||||
<?php } else { ?>
|
||||
<a href="<?php echo get_bloginfo( 'url' ); ?>" class="font-extrabold text-lg uppercase">
|
||||
<?php echo get_bloginfo( 'name' ); ?>
|
||||
</a>
|
||||
|
||||
<p class="text-sm font-light text-gray-600">
|
||||
<?php echo get_bloginfo( 'description' ); ?>
|
||||
</p>
|
||||
|
||||
<?php } ?>
|
||||
</div>
|
||||
|
||||
<div class="lg:hidden">
|
||||
<a href="#" aria-label="Toggle navigation" id="primary-menu-toggle">
|
||||
<svg viewBox="0 0 20 20" class="inline-block w-6 h-6" version="1.1"
|
||||
xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
|
||||
<g stroke="none" stroke-width="1" fill="currentColor" fill-rule="evenodd">
|
||||
<g id="icon-shape">
|
||||
<path d="M0,3 L20,3 L20,5 L0,5 L0,3 Z M0,9 L20,9 L20,11 L0,11 L0,9 Z M0,15 L20,15 L20,17 L0,17 L0,15 Z"
|
||||
id="Combined-Shape"></path>
|
||||
</g>
|
||||
</g>
|
||||
</svg>
|
||||
</a>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<?php
|
||||
wp_nav_menu(
|
||||
array(
|
||||
'container_id' => 'primary-menu',
|
||||
'container_class' => 'hidden bg-gray-100 mt-4 p-4 lg:mt-0 lg:p-0 lg:bg-transparent lg:block',
|
||||
'menu_class' => 'lg:flex lg:-mx-4',
|
||||
'theme_location' => 'primary',
|
||||
'li_class' => 'lg:mx-4',
|
||||
'fallback_cb' => false,
|
||||
)
|
||||
);
|
||||
?>
|
||||
</div>
|
||||
</div>
|
||||
</header>
|
||||
|
||||
<div id="content" class="site-content flex-grow">
|
||||
|
||||
<?php if ( is_front_page() ) { ?>
|
||||
|
||||
<?php } ?>
|
||||
|
||||
<?php do_action( 'tailpress_content_start' ); ?>
|
||||
|
||||
<main>
|
||||
85
includes/blocks.php
Executable file
85
includes/blocks.php
Executable file
|
|
@ -0,0 +1,85 @@
|
|||
<?php
|
||||
|
||||
|
||||
// ##### Blocks Category 🡒 Déclaration de la catégorie de blocks custom
|
||||
function client_add_block_categories( $categories ) {
|
||||
return array_merge(
|
||||
|
||||
[
|
||||
[
|
||||
'slug' => 'client_blocks',
|
||||
'title' => __( 'Mon titre ', 'client-blocks' ),
|
||||
'icon' => 'heart',
|
||||
],
|
||||
],
|
||||
$categories
|
||||
);
|
||||
}
|
||||
add_action( 'block_categories', 'client_add_block_categories', 10, 2 );
|
||||
|
||||
|
||||
// ##### Blocks 🡒 Déclaration des blocks acf custom
|
||||
|
||||
function acf_custom_client_blocks_init()
|
||||
{
|
||||
if (function_exists('acf_register_block_type')) {
|
||||
|
||||
// ##### Home 🡒 Hero Section
|
||||
acf_register_block_type(array(
|
||||
'name' => 'home_section',
|
||||
'title' => __("Home — Section d'accueil"),
|
||||
'description' => __("Brique de vidéo pour la section d'acccueil"),
|
||||
'render_template' => 'template-parts/blocks/home/home_hero/home_hero.php',
|
||||
'category' => 'client_blocks',
|
||||
'multiple' => false,
|
||||
'mode' => 'auto',
|
||||
'align' => 'full',
|
||||
'icon' => 'schedule',
|
||||
'supports' => array(
|
||||
'multiple' => false,
|
||||
'align' => ['full'],
|
||||
'jsx' => true
|
||||
),
|
||||
// 'enqueue_style' => get_template_directory_uri() . '/template-parts/blocks/testimonial/testimonial.css',
|
||||
// 'enqueue_script' => get_template_directory_uri() . '/template-parts/blocks/testimonial/testimonial.js',
|
||||
// 'enqueue_assets' => function(){
|
||||
// wp_enqueue_script( 'latest_articles_js', get_stylesheet_directory_uri() . '/template-parts/blocks/home/latest_articles/latest_articles.js');
|
||||
// },
|
||||
|
||||
));
|
||||
|
||||
// ##### Home 🡒 Latest Articles
|
||||
acf_register_block_type(array(
|
||||
'name' => 'latest_articles',
|
||||
'title' => __("Home — Derniers Articles"),
|
||||
'description' => __("Brique pour afficher les derniers articles publiés sur le site"),
|
||||
'render_template' => 'template-parts/blocks/home/latest_articles/latest_articles.php',
|
||||
'category' => 'client_blocks',
|
||||
'multiple' => false,
|
||||
'mode' => 'auto',
|
||||
'align' => 'wide',
|
||||
'icon' => 'schedule',
|
||||
// 'enqueue_style' => get_template_directory_uri() . '/template-parts/blocks/testimonial/testimonial.css',
|
||||
// 'enqueue_script' => get_template_directory_uri() . '/template-parts/blocks/testimonial/testimonial.js',
|
||||
// 'enqueue_assets' => function(){
|
||||
// wp_enqueue_script( 'latest_articles_js', get_stylesheet_directory_uri() . '/template-parts/blocks/home/latest_articles/latest_articles.js');
|
||||
// },
|
||||
|
||||
));
|
||||
|
||||
}
|
||||
}
|
||||
add_action('acf/init', 'acf_custom_client_blocks_init');
|
||||
|
||||
|
||||
// ##### Blocks style 🡒 Re-enqueue d'un style dans l'éditeur
|
||||
|
||||
|
||||
// function block_newsfeed_add_editor_styles() {
|
||||
// add_editor_style( get_stylesheet_directory_uri() . '/template-parts/blocks/editor.css' );
|
||||
// }
|
||||
// add_action( 'admin_init', 'block_newsfeed_add_editor_styles' );
|
||||
|
||||
|
||||
|
||||
?>
|
||||
19
includes/errorlog.php
Executable file
19
includes/errorlog.php
Executable file
|
|
@ -0,0 +1,19 @@
|
|||
<?php
|
||||
|
||||
// #################################
|
||||
// FUNCTION ERROR LOG
|
||||
// #################################
|
||||
|
||||
|
||||
// Error log
|
||||
if (!function_exists('write_log')) {
|
||||
function write_log($log) {
|
||||
if (true === WP_DEBUG) {
|
||||
if (is_array($log) || is_object($log)) {
|
||||
error_log(print_r($log, true));
|
||||
} else {
|
||||
error_log($log);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
20
includes/logos.php
Executable file
20
includes/logos.php
Executable file
|
|
@ -0,0 +1,20 @@
|
|||
<?php
|
||||
|
||||
// #############################
|
||||
// AJOUT D'UN ESPACE LOGO CUSTOM
|
||||
// #############################
|
||||
|
||||
function add_logo_customizer_settings($wp_customize) {
|
||||
$wp_customize->add_setting('logo_semlex_dark');
|
||||
|
||||
// Add a control to upload the hover logo
|
||||
$wp_customize->add_control(new WP_Customize_Image_Control($wp_customize, 'logo_semlex_dark', array(
|
||||
'label' => 'Logo Semlex Sombre',
|
||||
'section' => 'title_tagline', //this is the section where the custom-logo from WordPress is
|
||||
'settings' => 'logo_semlex_dark',
|
||||
'priority' => 8 // show it just below the custom-logo
|
||||
)));
|
||||
}
|
||||
|
||||
add_action('customize_register', 'add_logo_customizer_settings');
|
||||
|
||||
84
includes/shortcuts/shortcuts.php
Normal file
84
includes/shortcuts/shortcuts.php
Normal file
|
|
@ -0,0 +1,84 @@
|
|||
<?php
|
||||
|
||||
// ##### Template parts 🡒 Get templates parts
|
||||
|
||||
get_template_part( 'template-parts/blocks/the-file', null,
|
||||
array(
|
||||
'ID'=>$my_post_id,
|
||||
)
|
||||
);
|
||||
|
||||
/** ------------------------------
|
||||
QUERIES
|
||||
------------------------------*/
|
||||
|
||||
// ##### Query 🡒 Get posts
|
||||
|
||||
$args = array('fields' => 'ids');
|
||||
$posts = get_posts($args);
|
||||
|
||||
|
||||
// ##### Query 🡒 Recent posts
|
||||
|
||||
$posts = wp_get_recent_posts([
|
||||
'numberposts' => 4 ,
|
||||
'post_status' => 'publish'
|
||||
]);
|
||||
|
||||
|
||||
// ##### Query 🡒 With Metaqueries
|
||||
$args = array(
|
||||
'post_type'=>'activities',
|
||||
'post_status' => array( 'publish', 'future' ),
|
||||
'numberposts' => '3',
|
||||
'meta_key' => 'date',
|
||||
'orderby' => 'meta_value',
|
||||
'order' => 'ASC',
|
||||
// ######## Main
|
||||
'meta_query' => array(
|
||||
array(
|
||||
'key' => 'date',
|
||||
'value' => $today,
|
||||
'compare' => '>='
|
||||
)
|
||||
)
|
||||
);
|
||||
|
||||
$recent_activites = wp_get_recent_posts($args);
|
||||
|
||||
// ##### Query 🡒 Wordpress Global Query Loop
|
||||
|
||||
$args = array('posts_per_page' => 6,'post_type' => 'post');
|
||||
$the_query = new WP_Query( $args );
|
||||
|
||||
|
||||
if ( $the_query->have_posts() ) {
|
||||
echo '<ul>';
|
||||
while ( $the_query->have_posts() ) {
|
||||
$the_query->the_post();
|
||||
echo '<li>' . get_the_title() . '</li>';
|
||||
}
|
||||
echo '</ul>';
|
||||
} else {
|
||||
// no posts found
|
||||
}
|
||||
/* Restore original Post Data */
|
||||
wp_reset_postdata();
|
||||
|
||||
/** ------------------------------
|
||||
POST DATES
|
||||
------------------------------*/
|
||||
$post_date = date_i18n('j F Y', strtotime($post['post_date']));
|
||||
|
||||
|
||||
/** ------------------------------
|
||||
URL
|
||||
------------------------------*/
|
||||
|
||||
// ##### URL 🡒 Home Url
|
||||
echo home_url('/admission/');
|
||||
|
||||
// ##### URL 🡒 Site Url
|
||||
echo site_url('/admission/', 'https');
|
||||
|
||||
|
||||
20
index.php
Normal file
20
index.php
Normal file
|
|
@ -0,0 +1,20 @@
|
|||
<?php get_header(); ?>
|
||||
|
||||
<div class="container mx-auto my-8">
|
||||
|
||||
<?php if ( have_posts() ) : ?>
|
||||
<?php
|
||||
while ( have_posts() ) :
|
||||
the_post();
|
||||
?>
|
||||
|
||||
<?php get_template_part( 'template-parts/content', get_post_format() ); ?>
|
||||
|
||||
<?php endwhile; ?>
|
||||
|
||||
<?php endif; ?>
|
||||
|
||||
</div>
|
||||
|
||||
<?php
|
||||
get_footer();
|
||||
10
js/app.js
Normal file
10
js/app.js
Normal file
|
|
@ -0,0 +1,10 @@
|
|||
(() => {
|
||||
// resources/js/app.js
|
||||
window.addEventListener("load", function() {
|
||||
let main_navigation = document.querySelector("#primary-menu");
|
||||
document.querySelector("#primary-menu-toggle").addEventListener("click", function(e) {
|
||||
e.preventDefault();
|
||||
main_navigation.classList.toggle("hidden");
|
||||
});
|
||||
});
|
||||
})();
|
||||
5710
package-lock.json
generated
Normal file
5710
package-lock.json
generated
Normal file
File diff suppressed because it is too large
Load Diff
43
package.json
Normal file
43
package.json
Normal file
|
|
@ -0,0 +1,43 @@
|
|||
{
|
||||
"name": "tailpress",
|
||||
"version": "3.0.0",
|
||||
"description": "Boilerplate WordPress theme with Tailwind CSS.",
|
||||
"author": "Jeffrey van Rossum",
|
||||
"repository": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/jeffreyvr/tailpress"
|
||||
},
|
||||
"theme_uri": "https://github.com/jeffreyvr/tailpress",
|
||||
"author_uri": "https://vanrossum.dev",
|
||||
"text_domain": "tailpress",
|
||||
"license": "MIT",
|
||||
"scripts": {
|
||||
"production:css-app": "cross-env NODE_ENV=development tailwindcss -i ./resources/css/app.css -o ./css/app.css --postcss --minify",
|
||||
"production:css-editor": "cross-env NODE_ENV=development tailwindcss -i ./resources/css/editor-style.css -o ./css/editor-style.css --postcss --minify",
|
||||
"production:js": "cross-env NODE_ENV=development ./node_modules/.bin/esbuild ./resources/js/app.js --bundle --outfile=./js/app.js --minify",
|
||||
"dev:css-app": "cross-env NODE_ENV=development tailwindcss -i ./resources/css/app.css -o ./css/app.css --postcss",
|
||||
"dev:css-editor": "cross-env NODE_ENV=development tailwindcss -i ./resources/css/editor-style.css -o ./css/editor-style.css --postcss",
|
||||
"dev:js": "cross-env NODE_ENV=development ./node_modules/.bin/esbuild ./resources/js/app.js --bundle --outfile=./js/app.js",
|
||||
"watch:css-app": "cross-env NODE_ENV=development tailwindcss -i ./resources/css/app.css -o ./css/app.css --postcss --watch",
|
||||
"watch:css-editor": "cross-env NODE_ENV=development tailwindcss -i ./resources/css/editor-style.css -o ./css/editor-style.css --postcss --watch",
|
||||
"watch:js": "cross-env NODE_ENV=development ./node_modules/.bin/esbuild ./resources/js/app.js --bundle --outfile=./js/app.js --watch",
|
||||
"production": "cross-env NODE_ENV=production concurrently \"npm run production:css-app\" \"npm run production:css-editor\" \"npm run production:js\"",
|
||||
"dev": "cross-env NODE_ENV=development concurrently \"npm run dev:css-app\" \"npm run dev:css-editor\" \"npm run dev:js\"",
|
||||
"watch": "cross-env NODE_ENV=development concurrently \"npm run watch:css-app\" \"npm run watch:css-editor\" \"npm run watch:js\"",
|
||||
"browser-sync": "cross-env NODE_ENV=development browser-sync start --proxy \"tailpress.test\" --host=\"tailpress.test\" --no-inject-changes --files=\"./\"",
|
||||
"watch-sync": "cross-env NODE_ENV=development concurrently \"npm run browser-sync\" \"npm run watch\""
|
||||
},
|
||||
"devDependencies": {
|
||||
"@jeffreyvr/tailwindcss-tailpress": "^2.0.0",
|
||||
"autoprefixer": "^10.4.0",
|
||||
"browser-sync": "^2.26.14",
|
||||
"concurrently": "^6.2.1",
|
||||
"cross-env": "^6.0.3",
|
||||
"esbuild": "^0.12.24",
|
||||
"postcss": "^8.4.4",
|
||||
"postcss-import": "^14.0.0",
|
||||
"postcss-nested-ancestors": "^2.0.0",
|
||||
"resolve-url-loader": "^3.1.2",
|
||||
"tailwindcss": "^3.1.0"
|
||||
}
|
||||
}
|
||||
8
postcss.config.js
Normal file
8
postcss.config.js
Normal file
|
|
@ -0,0 +1,8 @@
|
|||
module.exports = {
|
||||
plugins: [
|
||||
require('postcss-nested-ancestors'),
|
||||
require('postcss-import'),
|
||||
require('tailwindcss/nesting'),
|
||||
require('tailwindcss')
|
||||
]
|
||||
}
|
||||
5
resources/css/app.css
Normal file
5
resources/css/app.css
Normal file
|
|
@ -0,0 +1,5 @@
|
|||
@import "tailwindcss/base";
|
||||
@import "tailwindcss/components";
|
||||
@import "tailwindcss/utilities";
|
||||
|
||||
@import "custom.css";
|
||||
45
resources/css/custom.css
Normal file
45
resources/css/custom.css
Normal file
|
|
@ -0,0 +1,45 @@
|
|||
article>*:not(.entry-content),
|
||||
.entry-content>* {
|
||||
@apply mx-auto max-w-content;
|
||||
}
|
||||
|
||||
.entry-content,
|
||||
.block-editor-block-list__layout {
|
||||
h1 {
|
||||
@apply text-2xl;
|
||||
}
|
||||
|
||||
h2 {
|
||||
@apply text-xl;
|
||||
}
|
||||
|
||||
h3 {
|
||||
@apply text-lg;
|
||||
}
|
||||
|
||||
p,
|
||||
ul,
|
||||
ol {
|
||||
a {
|
||||
@apply text-blue-500 underline;
|
||||
|
||||
&:hover {
|
||||
@apply no-underline;
|
||||
}
|
||||
}
|
||||
|
||||
@apply mb-8;
|
||||
}
|
||||
|
||||
ul:not(.block-editor-block-variation-picker__variations) {
|
||||
li {
|
||||
@apply list-disc list-inside;
|
||||
}
|
||||
}
|
||||
|
||||
ol {
|
||||
li {
|
||||
@apply list-decimal list-inside;
|
||||
}
|
||||
}
|
||||
}
|
||||
18
resources/css/editor-style.css
Normal file
18
resources/css/editor-style.css
Normal file
|
|
@ -0,0 +1,18 @@
|
|||
@import "tailwindcss/components";
|
||||
@import "tailwindcss/utilities";
|
||||
|
||||
body {
|
||||
@apply font-sans;
|
||||
}
|
||||
|
||||
.wp-block{
|
||||
@apply max-w-screen-xl;
|
||||
}
|
||||
|
||||
.wp-block[data-align=wide] {
|
||||
@apply max-w-screen-xl;
|
||||
}
|
||||
|
||||
.wp-block[data-align=full] {
|
||||
@apply max-w-full;
|
||||
}
|
||||
8
resources/js/app.js
Normal file
8
resources/js/app.js
Normal file
|
|
@ -0,0 +1,8 @@
|
|||
// Navigation toggle
|
||||
window.addEventListener('load', function () {
|
||||
let main_navigation = document.querySelector('#primary-menu');
|
||||
document.querySelector('#primary-menu-toggle').addEventListener('click', function (e) {
|
||||
e.preventDefault();
|
||||
main_navigation.classList.toggle('hidden');
|
||||
});
|
||||
});
|
||||
8
safelist.txt
Normal file
8
safelist.txt
Normal file
|
|
@ -0,0 +1,8 @@
|
|||
alignfull
|
||||
alignwide
|
||||
alignnone
|
||||
aligncenter
|
||||
alignright
|
||||
wp-block-button
|
||||
wp-caption
|
||||
wp-caption-text
|
||||
BIN
screenshot.png
Normal file
BIN
screenshot.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 61 KiB |
28
single.php
Normal file
28
single.php
Normal file
|
|
@ -0,0 +1,28 @@
|
|||
<?php get_header(); ?>
|
||||
|
||||
<div class="container my-8 mx-auto">
|
||||
|
||||
<?php if ( have_posts() ) : ?>
|
||||
|
||||
<?php
|
||||
while ( have_posts() ) :
|
||||
the_post();
|
||||
?>
|
||||
|
||||
<?php get_template_part( 'template-parts/content', 'single' ); ?>
|
||||
|
||||
<?php
|
||||
// If comments are open or we have at least one comment, load up the comment template.
|
||||
if ( comments_open() || get_comments_number() ) :
|
||||
comments_template();
|
||||
endif;
|
||||
?>
|
||||
|
||||
<?php endwhile; ?>
|
||||
|
||||
<?php endif; ?>
|
||||
|
||||
</div>
|
||||
|
||||
<?php
|
||||
get_footer();
|
||||
7
style.css
Normal file
7
style.css
Normal file
|
|
@ -0,0 +1,7 @@
|
|||
/*
|
||||
Theme Name: Deligraph
|
||||
Author: Deligraph
|
||||
Author URI: https://deligraph.com/
|
||||
Version: 1.0.0
|
||||
|
||||
*/
|
||||
36
tailwind.config.js
Normal file
36
tailwind.config.js
Normal file
|
|
@ -0,0 +1,36 @@
|
|||
const theme = require('./theme.json');
|
||||
const tailpress = require("@jeffreyvr/tailwindcss-tailpress");
|
||||
|
||||
module.exports = {
|
||||
content: [
|
||||
'./*.php',
|
||||
'./**/*.php',
|
||||
'./resources/css/*.css',
|
||||
'./resources/js/*.js',
|
||||
'./safelist.txt'
|
||||
],
|
||||
theme: {
|
||||
container: {
|
||||
padding: {
|
||||
DEFAULT: '1rem',
|
||||
sm: '2rem',
|
||||
lg: '0rem'
|
||||
},
|
||||
},
|
||||
extend: {
|
||||
colors: tailpress.colorMapper(tailpress.theme('settings.color.palette', theme)),
|
||||
fontSize: tailpress.fontSizeMapper(tailpress.theme('settings.typography.fontSizes', theme))
|
||||
},
|
||||
screens: {
|
||||
'xs': '480px',
|
||||
'sm': '600px',
|
||||
'md': '782px',
|
||||
'lg': tailpress.theme('settings.layout.contentSize', theme),
|
||||
'xl': tailpress.theme('settings.layout.wideSize', theme),
|
||||
'2xl': '1440px'
|
||||
}
|
||||
},
|
||||
plugins: [
|
||||
tailpress.tailwind
|
||||
]
|
||||
};
|
||||
42
template-parts/blocks/home/home_hero/home_hero.css
Executable file
42
template-parts/blocks/home/home_hero/home_hero.css
Executable file
|
|
@ -0,0 +1,42 @@
|
|||
.video_hero{
|
||||
@apply bg-primary;
|
||||
height: 100vh;
|
||||
min-height: 650px;
|
||||
position: relative;
|
||||
|
||||
video{
|
||||
width: 100%;
|
||||
height: 100%;
|
||||
object-fit: cover;
|
||||
position: absolute;
|
||||
}
|
||||
.hero_content{
|
||||
opacity: 0.9999;
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
align-items: center;
|
||||
justify-content: center;
|
||||
height: 100%;
|
||||
|
||||
h1 {
|
||||
font-family: "Causten";
|
||||
font-weight: 700;
|
||||
font-size: 50px;
|
||||
line-height: 50px;
|
||||
max-width: 700px;
|
||||
text-transform: uppercase;
|
||||
|
||||
}
|
||||
p{
|
||||
@apply max-w-md;
|
||||
padding: 40px 0;
|
||||
text-align:center;
|
||||
}
|
||||
a{
|
||||
border: 1px solid white;
|
||||
padding: 10px 40px;
|
||||
border-radius: 28px;
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
18
template-parts/blocks/home/home_hero/home_hero.php
Executable file
18
template-parts/blocks/home/home_hero/home_hero.php
Executable file
|
|
@ -0,0 +1,18 @@
|
|||
<?php
|
||||
$home_video_hero = get_field('home_video_hero');
|
||||
|
||||
?>
|
||||
|
||||
<section class="video_hero header_top">
|
||||
<video class="test" autoplay muted loop playsinline ?>">
|
||||
<source src="<?php echo get_template_directory_uri() . '/resources/video/Semlex_Homecover_hero.mp4' ?>" type="video/mp4">
|
||||
Your browser does not support the video tag.
|
||||
</video>
|
||||
<div class="hero_content">
|
||||
|
||||
<h1 class="text-center text-white"><?php echo $home_video_hero['main_title'] ?></h1>
|
||||
<p class="text-center text-white" ><?php echo $home_video_hero['text'] ?></p>
|
||||
<a class="text-center mx-auto w-fit text-white" href=""><?php echo $home_video_hero['button']['title'] ?></a>
|
||||
</div>
|
||||
</section>
|
||||
|
||||
0
template-parts/blocks/home/latest_articles/latest_articles.js
Executable file
0
template-parts/blocks/home/latest_articles/latest_articles.js
Executable file
35
template-parts/blocks/home/latest_articles/latest_articles.php
Executable file
35
template-parts/blocks/home/latest_articles/latest_articles.php
Executable file
|
|
@ -0,0 +1,35 @@
|
|||
<?php
|
||||
// $latest_posts_details = get_field('latest_posts_details');
|
||||
?>
|
||||
|
||||
<section class="section_latest_news">
|
||||
<h2 class="section_title">Lastest Articles</h2>
|
||||
|
||||
<div class="articles_container">
|
||||
<?php
|
||||
|
||||
$recent_posts = wp_get_recent_posts(array(
|
||||
'numberposts' => 4, // Number of recent posts thumbnails to display
|
||||
'post_status' => 'publish' // Show only the published posts
|
||||
));
|
||||
|
||||
|
||||
foreach ($recent_posts as $key => $post) {
|
||||
$post_date = date_i18n('j F Y', strtotime($post['post_date']));
|
||||
?>
|
||||
<div class="article_card">
|
||||
<?php echo get_the_post_thumbnail( $post['ID'], 'full',array('class' => 'article_thumbnail') ); ?>
|
||||
<div class="card_inner">
|
||||
<h4 class="post_date"> <?php echo $post_date ?> </h4>
|
||||
<h3 class="post_title"><?php echo $post['post_title'] ?></h3>
|
||||
<p><?php echo $post['post_excerpt'] ?></p>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
<?php
|
||||
}
|
||||
|
||||
?>
|
||||
</div>
|
||||
|
||||
</section>
|
||||
25
template-parts/content-single.php
Normal file
25
template-parts/content-single.php
Normal file
|
|
@ -0,0 +1,25 @@
|
|||
<article id="post-<?php the_ID(); ?>" <?php post_class(); ?>>
|
||||
|
||||
<header class="entry-header mb-4">
|
||||
<?php the_title( sprintf( '<h1 class="entry-title text-2xl lg:text-5xl font-extrabold leading-tight mb-1"><a href="%s" rel="bookmark">', esc_url( get_permalink() ) ), '</a></h1>' ); ?>
|
||||
<time datetime="<?php echo get_the_date( 'c' ); ?>" itemprop="datePublished" class="text-sm text-gray-700"><?php echo get_the_date(); ?></time>
|
||||
</header>
|
||||
|
||||
<div class="entry-content">
|
||||
<?php the_content(); ?>
|
||||
|
||||
<?php
|
||||
wp_link_pages(
|
||||
array(
|
||||
'before' => '<div class="page-links"><span class="page-links-title">' . __( 'Pages:', 'tailpress' ) . '</span>',
|
||||
'after' => '</div>',
|
||||
'link_before' => '<span>',
|
||||
'link_after' => '</span>',
|
||||
'pagelink' => '<span class="screen-reader-text">' . __( 'Page', 'tailpress' ) . ' </span>%',
|
||||
'separator' => '<span class="screen-reader-text">, </span>',
|
||||
)
|
||||
);
|
||||
?>
|
||||
</div>
|
||||
|
||||
</article>
|
||||
41
template-parts/content.php
Normal file
41
template-parts/content.php
Normal file
|
|
@ -0,0 +1,41 @@
|
|||
<article id="post-<?php the_ID(); ?>" <?php post_class( 'mb-12' ); ?>>
|
||||
|
||||
<header class="entry-header mb-4">
|
||||
<?php the_title( sprintf( '<h2 class="entry-title text-2xl md:text-3xl font-extrabold leading-tight mb-1"><a href="%s" rel="bookmark">', esc_url( get_permalink() ) ), '</a></h2>' ); ?>
|
||||
<time datetime="<?php echo get_the_date( 'c' ); ?>" itemprop="datePublished" class="text-sm text-gray-700"><?php echo get_the_date(); ?></time>
|
||||
</header>
|
||||
|
||||
<?php if ( is_search() || is_archive() ) : ?>
|
||||
|
||||
<div class="entry-summary">
|
||||
<?php the_excerpt(); ?>
|
||||
</div>
|
||||
|
||||
<?php else : ?>
|
||||
|
||||
<div class="entry-content">
|
||||
<?php
|
||||
/* translators: %s: Name of current post */
|
||||
the_content(
|
||||
sprintf(
|
||||
__( 'Continue reading %s', 'tailpress' ),
|
||||
the_title( '<span class="screen-reader-text">"', '"</span>', false )
|
||||
)
|
||||
);
|
||||
|
||||
wp_link_pages(
|
||||
array(
|
||||
'before' => '<div class="page-links"><span class="page-links-title">' . __( 'Pages:', 'tailpress' ) . '</span>',
|
||||
'after' => '</div>',
|
||||
'link_before' => '<span>',
|
||||
'link_after' => '</span>',
|
||||
'pagelink' => '<span class="screen-reader-text">' . __( 'Page', 'tailpress' ) . ' </span>%',
|
||||
'separator' => '<span class="screen-reader-text">, </span>',
|
||||
)
|
||||
);
|
||||
?>
|
||||
</div>
|
||||
|
||||
<?php endif; ?>
|
||||
|
||||
</article>
|
||||
67
theme.json
Normal file
67
theme.json
Normal file
|
|
@ -0,0 +1,67 @@
|
|||
{
|
||||
"version": 1,
|
||||
"settings": {
|
||||
"layout": {
|
||||
"contentSize": "960px",
|
||||
"wideSize": "1280px"
|
||||
},
|
||||
"color": {
|
||||
"palette": [
|
||||
{
|
||||
"name": "Primary",
|
||||
"slug": "primary",
|
||||
"color": "#0EA5E9"
|
||||
},
|
||||
{
|
||||
"name": "Secondary",
|
||||
"slug": "secondary",
|
||||
"color": "#14B8A6"
|
||||
},
|
||||
{
|
||||
"name": "Dark",
|
||||
"slug": "dark",
|
||||
"color": "#1F2937"
|
||||
},
|
||||
{
|
||||
"name": "Light",
|
||||
"slug": "light",
|
||||
"color": "#F9FAFB"
|
||||
}
|
||||
]
|
||||
},
|
||||
"typography": {
|
||||
"fontSizes": [
|
||||
{
|
||||
"name": "Small",
|
||||
"slug": "small",
|
||||
"size": "0.875rem"
|
||||
},
|
||||
{
|
||||
"slug": "regular",
|
||||
"name": "Regular",
|
||||
"size": "1.5rem"
|
||||
},
|
||||
{
|
||||
"slug": "large",
|
||||
"name": "Large",
|
||||
"size": "1.125rem"
|
||||
},
|
||||
{
|
||||
"slug": "xl",
|
||||
"name": "XL",
|
||||
"size": "1.25rem"
|
||||
},
|
||||
{
|
||||
"slug": "xxl",
|
||||
"name": "2XL",
|
||||
"size": "1.5rem"
|
||||
},
|
||||
{
|
||||
"slug": "xxxl",
|
||||
"name": "3XL",
|
||||
"size": "1.875rem"
|
||||
}
|
||||
]
|
||||
}
|
||||
}
|
||||
}
|
||||
Loading…
Reference in New Issue
Block a user