init commit
This commit is contained in:
commit
50ac909260
9
.gitignore
vendored
Normal file
9
.gitignore
vendored
Normal file
@ -0,0 +1,9 @@
|
||||
.DS_Store
|
||||
node_modules/
|
||||
package-lock.json
|
||||
.prettierrc
|
||||
assets/css/main.css
|
||||
assets/css/main.css.map
|
||||
assets/css/editor.css
|
||||
assets/css/editor.css.map
|
||||
.github/*
|
21
LICENSE
Normal file
21
LICENSE
Normal file
@ -0,0 +1,21 @@
|
||||
MIT License
|
||||
|
||||
Copyright (c) 2021 - 2024 The Bootscore Contributors
|
||||
|
||||
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.
|
13
README.md
Normal file
13
README.md
Normal file
@ -0,0 +1,13 @@
|
||||
# Bootscore Child Theme
|
||||
|
||||
[](https://github.com/bootscore/bootscore-child/releases)
|
||||
[](https://packagist.org/packages/bootscore/bootscore-child)
|
||||
|
||||
Start developing your new WordPress project right away in a upgrade-safe way using overrides by copying files from [Bootscore](https://github.com/bootscore/bootscore) parent theme.
|
||||
|
||||
## Installation
|
||||
|
||||
1. Download latest [bootscore-child.zip](https://github.com/bootscore/bootscore-child/releases/latest/download/bootscore-child.zip) release.
|
||||
2. In your admin panel, go to Appearance > Themes and click the Add New button.
|
||||
3. Click Upload Theme and Choose File, then select the theme's .zip file. Click Install Now.
|
||||
4. Click Activate to use your new theme right away.
|
25
assets/img/logo/AIRA_logo.svg
Normal file
25
assets/img/logo/AIRA_logo.svg
Normal file
@ -0,0 +1,25 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<!-- Generator: Adobe Illustrator 28.2.0, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
|
||||
<svg version="1.1" id="AIRA_logo" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
|
||||
viewBox="0 0 106 24" style="enable-background:new 0 0 106 24;" xml:space="preserve">
|
||||
<style type="text/css">
|
||||
.st0{fill:#FFFFFF;}
|
||||
</style>
|
||||
<rect id="Rectangle_1100" x="34.4" y="0" class="st0" width="6.7" height="24"/>
|
||||
<g id="Group_346">
|
||||
<g>
|
||||
<g id="Group_345">
|
||||
<path id="Path_242" class="st0" d="M17.1,0.5c-0.2-0.3-0.5-0.3-0.8-0.2c-0.1,0-0.1,0.1-0.2,0.2L0,24h7.3l9.3-13.5L25.9,24h7.3
|
||||
L17.1,0.5"/>
|
||||
<path id="Path_243" class="st0" d="M89.9,0.5c-0.2-0.3-0.5-0.3-0.8-0.2c-0.1,0-0.1,0.1-0.2,0.2L72.8,24h7.3l9.3-13.5L98.7,24h7.3
|
||||
L89.9,0.5"/>
|
||||
<path id="Path_244" class="st0" d="M55.1,14.3c-0.2-0.2-0.2-0.6,0-0.8c0.1-0.1,0.2-0.1,0.3-0.1l7.1-1.3c1.6-0.1,2.9-1.5,3.1-3.1
|
||||
c-0.1-1.8-1.7-3.2-3.4-3.1H50.8V24h-6.7V0l19,0C68,0,72,4,71.9,8.9c0,4-2.7,7.5-6.5,8.6l6.1,6.5h-7.3L55.1,14.3z"/>
|
||||
<path id="Path_245" class="st0" d="M103.3,0.4c-1.2,0-2.2,1-2.2,2.2s1,2.2,2.2,2.2c1.2,0,2.2-1,2.2-2.2c0,0,0,0,0,0
|
||||
C105.5,1.4,104.5,0.4,103.3,0.4 M103.3,5c-1.3,0-2.4-1.1-2.4-2.4s1.1-2.4,2.4-2.4c1.3,0,2.4,1.1,2.4,2.4
|
||||
C105.7,3.9,104.6,5,103.3,5 M104,3l0.6-1.3h0.2v2h-0.3V2.2l-0.5,1.1h-0.2l-0.5-1v1.5h-0.3v-2h0.2L104,3z M102.9,1.7v0.2h-0.6v1.8
|
||||
h-0.3V1.9h-0.6V1.7H102.9z"/>
|
||||
</g>
|
||||
</g>
|
||||
</g>
|
||||
</svg>
|
After Width: | Height: | Size: 1.5 KiB |
67
assets/img/logo/logo-theme-dark.svg
Normal file
67
assets/img/logo/logo-theme-dark.svg
Normal file
@ -0,0 +1,67 @@
|
||||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||
<svg
|
||||
width="30"
|
||||
height="30.000999"
|
||||
viewBox="0 0 7.9374991 7.9377635"
|
||||
version="1.1"
|
||||
id="svg1323"
|
||||
inkscape:version="1.3.1 (91b66b0, 2023-11-16)"
|
||||
sodipodi:docname="logo-theme-dark.svg"
|
||||
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
|
||||
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
|
||||
xmlns="http://www.w3.org/2000/svg"
|
||||
xmlns:svg="http://www.w3.org/2000/svg"
|
||||
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
|
||||
xmlns:cc="http://creativecommons.org/ns#"
|
||||
xmlns:dc="http://purl.org/dc/elements/1.1/">
|
||||
<defs
|
||||
id="defs1317" />
|
||||
<sodipodi:namedview
|
||||
id="base"
|
||||
pagecolor="#ffffff"
|
||||
bordercolor="#666666"
|
||||
borderopacity="1.0"
|
||||
inkscape:pageopacity="0.0"
|
||||
inkscape:pageshadow="2"
|
||||
inkscape:zoom="2.7429584"
|
||||
inkscape:cx="-59.971745"
|
||||
inkscape:cy="6.3799729"
|
||||
inkscape:document-units="px"
|
||||
inkscape:current-layer="layer1"
|
||||
showgrid="false"
|
||||
units="px"
|
||||
inkscape:window-width="1424"
|
||||
inkscape:window-height="926"
|
||||
inkscape:window-x="0"
|
||||
inkscape:window-y="25"
|
||||
inkscape:window-maximized="0"
|
||||
inkscape:document-rotation="0"
|
||||
inkscape:pagecheckerboard="0"
|
||||
inkscape:showpageshadow="2"
|
||||
inkscape:deskcolor="#d1d1d1" />
|
||||
<metadata
|
||||
id="metadata1320">
|
||||
<rdf:RDF>
|
||||
<cc:Work
|
||||
rdf:about="">
|
||||
<dc:format>image/svg+xml</dc:format>
|
||||
<dc:type
|
||||
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
|
||||
</cc:Work>
|
||||
</rdf:RDF>
|
||||
</metadata>
|
||||
<g
|
||||
inkscape:label="Ebene 1"
|
||||
inkscape:groupmode="layer"
|
||||
id="layer1"
|
||||
transform="translate(0,-289.85624)">
|
||||
<g
|
||||
id="g5"
|
||||
transform="matrix(0.14829411,0,0,0.14829411,0.72135017,233.84599)"
|
||||
style="fill:#ffffff;fill-opacity:1;stroke-width:6.74336" />
|
||||
<path
|
||||
id="path180"
|
||||
style="color:#000000;fill:#f8f9fa;fill-opacity:1;stroke-width:1;stroke-linecap:round;-inkscape-stroke:none;paint-order:stroke fill markers"
|
||||
d="M 1.1328203,289.85624 C 0.51181,289.85624 0,290.36805 0,290.98907 v 5.67185 c 0,0.62102 0.51181,1.13282 1.1328203,1.13282 H 6.80468 c 0.62101,0 1.13281,-0.5118 1.13281,-1.13282 v -5.67185 c 0,-0.62102 -0.5118,-1.13283 -1.13281,-1.13283 z m 1.13518,1.51184 H 3.11874 v 1.4e-4 c 0.5058,0 0.97448,0.27069 1.2274,0.7087 0.2439,0.42245 0.25187,0.94075 0.0253,1.37002 h 0.6371 v -7e-5 c 0.5058,0 0.97449,0.27067 1.22739,0.7087 0.12647,0.21903 0.18967,0.46391 0.18966,0.70878 v 0.28348 H 5.66993 v -0.28348 c 0,-0.11407 -0.0296,-0.22808 -0.0888,-0.33066 -0.11847,-0.20517 -0.33585,-0.33065 -0.5728,-0.33065 H 3.12289 3.11889 2.64611 2.2681403 v 0.94494 h -0.75595 v -0.94494 -0.75595 -1.32292 -0.37798 a 0.37798089,0.37798089 0 0 1 0.37798,-0.37797 z m -1.5e-4,0.7561 v 1.32291 H 3.1186 v -7e-5 c 0.23695,0 0.45434,-0.12541 0.5728,-0.33058 0.11847,-0.20519 0.11847,-0.45644 0,-0.66161 -0.11846,-0.20517 -0.33585,-0.33058 -0.5728,-0.33058 v -7e-5 z m -0.75595,3.40178 h 0.75595 v 0.75595 h -0.37797 a 0.37798089,0.37798089 0 0 1 -0.37798,-0.37797 z m 1.1339197,0 H 5.66994 6.4256 v 0.37798 a 0.37798089,0.37798089 0 0 1 -0.37799,0.37797 H 5.66978 2.64582 Z" />
|
||||
</g>
|
||||
</svg>
|
After Width: | Height: | Size: 3.2 KiB |
67
assets/img/logo/logo.svg
Normal file
67
assets/img/logo/logo.svg
Normal file
@ -0,0 +1,67 @@
|
||||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||
<svg
|
||||
width="30"
|
||||
height="30.000999"
|
||||
viewBox="0 0 7.9374991 7.9377635"
|
||||
version="1.1"
|
||||
id="svg1323"
|
||||
inkscape:version="1.3.1 (91b66b0, 2023-11-16)"
|
||||
sodipodi:docname="logo.svg"
|
||||
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
|
||||
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
|
||||
xmlns="http://www.w3.org/2000/svg"
|
||||
xmlns:svg="http://www.w3.org/2000/svg"
|
||||
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
|
||||
xmlns:cc="http://creativecommons.org/ns#"
|
||||
xmlns:dc="http://purl.org/dc/elements/1.1/">
|
||||
<defs
|
||||
id="defs1317" />
|
||||
<sodipodi:namedview
|
||||
id="base"
|
||||
pagecolor="#ffffff"
|
||||
bordercolor="#666666"
|
||||
borderopacity="1.0"
|
||||
inkscape:pageopacity="0.0"
|
||||
inkscape:pageshadow="2"
|
||||
inkscape:zoom="2.6703575"
|
||||
inkscape:cx="-12.919618"
|
||||
inkscape:cy="-28.273368"
|
||||
inkscape:document-units="px"
|
||||
inkscape:current-layer="layer1"
|
||||
showgrid="false"
|
||||
units="px"
|
||||
inkscape:window-width="1424"
|
||||
inkscape:window-height="926"
|
||||
inkscape:window-x="0"
|
||||
inkscape:window-y="25"
|
||||
inkscape:window-maximized="0"
|
||||
inkscape:document-rotation="0"
|
||||
inkscape:pagecheckerboard="0"
|
||||
inkscape:showpageshadow="2"
|
||||
inkscape:deskcolor="#d1d1d1" />
|
||||
<metadata
|
||||
id="metadata1320">
|
||||
<rdf:RDF>
|
||||
<cc:Work
|
||||
rdf:about="">
|
||||
<dc:format>image/svg+xml</dc:format>
|
||||
<dc:type
|
||||
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
|
||||
</cc:Work>
|
||||
</rdf:RDF>
|
||||
</metadata>
|
||||
<g
|
||||
inkscape:label="Ebene 1"
|
||||
inkscape:groupmode="layer"
|
||||
id="layer1"
|
||||
transform="translate(0,-289.85624)">
|
||||
<g
|
||||
id="g5"
|
||||
transform="matrix(0.14829411,0,0,0.14829411,0.72135017,233.84599)"
|
||||
style="fill:#ffffff;fill-opacity:1;stroke-width:6.74336" />
|
||||
<path
|
||||
id="path180"
|
||||
style="color:#000000;fill:#212529;fill-opacity:1;stroke-width:1;stroke-linecap:round;-inkscape-stroke:none;paint-order:stroke fill markers"
|
||||
d="M 1.13282,289.85624 C 0.51181,289.85624 0,290.36805 0,290.98907 v 5.67185 c 0,0.62102 0.51181,1.13282 1.13282,1.13282 h 5.6718599 c 0.62101,0 1.13281,-0.5118 1.13281,-1.13282 v -5.67185 c 0,-0.62102 -0.5118,-1.13283 -1.13281,-1.13283 z m 1.1351802,1.51184 h 0.8507397 v 1.4e-4 c 0.5058,0 0.97448,0.27069 1.2274,0.7087 0.2439,0.42245 0.25187,0.94075 0.0253,1.37002 h 0.6371 v -7e-5 c 0.5058,0 0.97449,0.27067 1.22739,0.7087 0.12647,0.21903 0.18967,0.46391 0.18966,0.70878 v 0.28348 h -0.75566 v -0.28348 c 0,-0.11407 -0.0296,-0.22808 -0.0888,-0.33066 -0.11847,-0.20517 -0.33585,-0.33065 -0.5728,-0.33065 h -1.88544 -0.004 -0.47278 -0.3779697 v 0.94494 H 1.51219 v -0.94494 -0.75595 -1.32292 -0.37798 a 0.37798089,0.37798089 0 0 1 0.3779802,-0.37797 z m -1.5e-4,0.7561 v 1.32291 h 0.8507497 v -7e-5 c 0.23695,0 0.45434,-0.12541 0.5728,-0.33058 0.11847,-0.20519 0.11847,-0.45644 0,-0.66161 -0.11846,-0.20517 -0.33585,-0.33058 -0.5728,-0.33058 v -7e-5 z M 1.5119,295.52596 h 0.7559502 v 0.75595 h -0.37797 A 0.37798089,0.37798089 0 0 1 1.5119,295.90394 Z m 1.1339199,0 h 3.02412 0.75566 v 0.37798 a 0.37798089,0.37798089 0 0 1 -0.37799,0.37797 h -0.37783 -3.02396 z" />
|
||||
</g>
|
||||
</svg>
|
After Width: | Height: | Size: 3.2 KiB |
38
assets/js/custom.js
Normal file
38
assets/js/custom.js
Normal file
@ -0,0 +1,38 @@
|
||||
jQuery(function ($) {
|
||||
|
||||
// Getting links from a page and turning them into a scroll-spy bespoke menu
|
||||
|
||||
// FIXME when page loads with #... in url, the scroll spy gets messed up.
|
||||
|
||||
let links;
|
||||
|
||||
links = document.querySelectorAll("#one, #two, #three")
|
||||
|
||||
let url = window.location.href;
|
||||
|
||||
let innerContent = "";
|
||||
|
||||
links.forEach(link => {
|
||||
let fullUrl = url + "#" + link.id;
|
||||
innerContent += "<li><a href=\"" + fullUrl + " \" class=''>" + link.attributes.name.value + "</a></li>"
|
||||
});
|
||||
|
||||
console.log(innerContent)
|
||||
|
||||
let menu;
|
||||
menu = document.getElementById("menu-test-scroll-spy");
|
||||
|
||||
menu.innerHTML = innerContent
|
||||
|
||||
|
||||
// Activate Scrollspy
|
||||
$('.entry-content').scrollspy({
|
||||
target: '#nav_menu-4'
|
||||
});
|
||||
|
||||
// Refresh Scrollspy
|
||||
$('[data-spy="scroll"]').each(function () {
|
||||
$(this).scrollspy("refresh");
|
||||
});
|
||||
|
||||
});
|
4
assets/js/editor.js
Normal file
4
assets/js/editor.js
Normal file
@ -0,0 +1,4 @@
|
||||
wp.domReady ( function() {
|
||||
wp.blocks.unregisterBlockStyle( 'core/button', 'outline');
|
||||
wp.blocks.unregisterBlockStyle( 'core/button', 'fill');
|
||||
});
|
155
assets/scss/_bootscore-custom.scss
Normal file
155
assets/scss/_bootscore-custom.scss
Normal file
@ -0,0 +1,155 @@
|
||||
/*!
|
||||
* Bootscore custom styles
|
||||
*/
|
||||
|
||||
// Add your own code here!
|
||||
// Because this file is compiled after Bootstrap, you're also able to use Bootstrap mixins for better code.
|
||||
// Some examples can be found here: https://bootscore.me/documentation/bootstrap-css-sass
|
||||
|
||||
/* NAVIGATION */
|
||||
#nav-main {
|
||||
height: 70px;
|
||||
.container {
|
||||
width: 1320px;
|
||||
}
|
||||
.nav-link {
|
||||
text-transform: uppercase;
|
||||
font-size: 13px;
|
||||
}
|
||||
}
|
||||
|
||||
/* Is required to show the svg logo */
|
||||
.navbar-brand {
|
||||
width: 150px;
|
||||
}
|
||||
|
||||
|
||||
/* CUSTOM BLOCK MOBILE SUPPORT */
|
||||
@include media-breakpoint-up(md) {
|
||||
body:not(.wp-admin) .wp-block-create-block-featured-image-block {
|
||||
.call-to-action {
|
||||
width: 350px;
|
||||
margin-right: 100px;
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
|
||||
|
||||
/* DEFAULT BLOCK OVERRIDES */
|
||||
:root :where(p.has-background) {
|
||||
padding:.5em;
|
||||
}
|
||||
|
||||
.wp-block-cover, .wp-block-cover-image {
|
||||
min-height: auto;
|
||||
}
|
||||
/* COVER control the spacing on the left and right */
|
||||
.wp-block-cover.is-light {
|
||||
.has-text-align-left {
|
||||
margin-left: 0 !important;
|
||||
}
|
||||
.has-text-align-right {
|
||||
margin-right: 0 !important;
|
||||
}
|
||||
}
|
||||
|
||||
@include media-breakpoint-up(md) {
|
||||
:root :where(p.has-background) {
|
||||
padding:1.25em 2.375em;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
/* HOMEPAGE SPECIFIC STYLING PER BLOCK */
|
||||
/* Crane block */
|
||||
.homepage-crane {
|
||||
.wp-block-cover__image-background {
|
||||
background-position: right 35% top 20% !important;
|
||||
}
|
||||
}
|
||||
|
||||
.home {
|
||||
#content {
|
||||
padding-top: 0 !important;
|
||||
}
|
||||
.entry-header {
|
||||
display: none;
|
||||
}
|
||||
}
|
||||
|
||||
.footer-crane {
|
||||
.wp-block-cover__image-background {
|
||||
background-position: 760% 20% !important;
|
||||
background-attachment: initial;
|
||||
background-repeat: no-repeat;
|
||||
background-size: auto;
|
||||
}
|
||||
}
|
||||
|
||||
/* Footer */
|
||||
|
||||
#footer {
|
||||
.bootscore-footer-columns {
|
||||
// background-color: black;
|
||||
color: white;
|
||||
a {
|
||||
color: white;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/* Custom Style for core/cover block */
|
||||
.is-style-fixed-height-272 {
|
||||
height: 272px;
|
||||
}
|
||||
.is-style-fixed-height-300 {
|
||||
height: 300px;
|
||||
}
|
||||
.is-style-fixed-height-400 {
|
||||
height: 400px;
|
||||
}
|
||||
|
||||
// /* FIXME: merge buttons to be bootstrap by amending the classes here in core/button. Then update theme.json */
|
||||
// .wp-block-button__link {
|
||||
// transition: color 0.15s ease-in-out, background-color 0.15s ease-in-out, border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out;
|
||||
// &:hover {
|
||||
// color: #fff;
|
||||
// background-color: #c20512;
|
||||
// border-color: #b70511;
|
||||
// }
|
||||
// }
|
||||
|
||||
.is-style-bootstrap-primary > a,
|
||||
.is-style-bootstrap-primary > div {
|
||||
@extend .btn;
|
||||
@extend .btn-primary;
|
||||
@extend .btn-lg;
|
||||
}
|
||||
|
||||
.is-style-bootstrap-dark > a,
|
||||
.is-style-bootstrap-dark > div {
|
||||
@extend .btn;
|
||||
@extend .btn-dark;
|
||||
@extend .btn-lg;
|
||||
}
|
||||
|
||||
/* Page */
|
||||
.featured-full-width-img {
|
||||
height: 400px;
|
||||
}
|
||||
|
||||
#secondary {
|
||||
height: 100%;
|
||||
}
|
||||
|
||||
#sidebar {
|
||||
position: sticky;
|
||||
a:not(.active) {
|
||||
color: black;
|
||||
}
|
||||
li {
|
||||
padding: 0.25rem 0;
|
||||
}
|
||||
}
|
0
assets/scss/_bootscore-maps.scss
Normal file
0
assets/scss/_bootscore-maps.scss
Normal file
4
assets/scss/_bootscore-utilities.scss
Normal file
4
assets/scss/_bootscore-utilities.scss
Normal file
@ -0,0 +1,4 @@
|
||||
/*
|
||||
Use this file to add your own custom utility classes.
|
||||
https://getbootstrap.com/docs/5.3/utilities/api/
|
||||
*/
|
23
assets/scss/_bootscore-variables.scss
Normal file
23
assets/scss/_bootscore-variables.scss
Normal file
@ -0,0 +1,23 @@
|
||||
// In this file you can override the default variables of Bootstrap
|
||||
// Do you want primary to be green? Just add "$primary: #00FF00;" to this file and the theme will automatically compile the scss for you.
|
||||
$primary: #e30613;
|
||||
$secondary: #cccccc;
|
||||
$tertiary: #f5f5f5;
|
||||
|
||||
|
||||
$navbar-light-color: white;
|
||||
$navbar-light-hover-color: darken(white, 10%);
|
||||
$navbar-light-active-color: white;
|
||||
|
||||
$btn-border-radius: 0;
|
||||
$btn-border-radius-sm: 0;
|
||||
$btn-border-radius-lg: 0;
|
||||
|
||||
$container-max-widths: (
|
||||
sm: 540px,
|
||||
md: 720px,
|
||||
lg: 960px,
|
||||
xl: 1140px,
|
||||
xxl: 1400px
|
||||
);
|
||||
|
14
assets/scss/editor.scss
Normal file
14
assets/scss/editor.scss
Normal file
@ -0,0 +1,14 @@
|
||||
/*!
|
||||
* editor.scss
|
||||
* This file compiles Bootstrap colors, which are used in theme.json as variables,
|
||||
* and adds the compiled colors to the color picker in the sidebar.
|
||||
*/
|
||||
@import "bootstrap/functions";
|
||||
|
||||
@import "bootscore-variables";
|
||||
|
||||
@import "bootstrap/variables";
|
||||
@import "bootstrap/variables-dark";
|
||||
@import "bootstrap/maps";
|
||||
@import "bootstrap/mixins";
|
||||
@import "bootstrap/root";
|
58
assets/scss/main.scss
Normal file
58
assets/scss/main.scss
Normal file
@ -0,0 +1,58 @@
|
||||
@import "bootstrap/mixins/banner";
|
||||
@include bsBanner("");
|
||||
|
||||
@import "bootstrap/functions";
|
||||
|
||||
@import "bootscore-variables";
|
||||
|
||||
@import "bootstrap/variables";
|
||||
@import "bootstrap/variables-dark";
|
||||
|
||||
@import "bootscore-maps";
|
||||
|
||||
@import "bootstrap/maps";
|
||||
@import "bootstrap/mixins";
|
||||
|
||||
@import "bootstrap/utilities";
|
||||
|
||||
@import "bootscore-utilities";
|
||||
|
||||
@import "bootstrap/root";
|
||||
@import "bootstrap/reboot";
|
||||
@import "bootstrap/type";
|
||||
@import "bootstrap/images";
|
||||
@import "bootstrap/containers";
|
||||
@import "bootstrap/grid";
|
||||
@import "bootstrap/tables";
|
||||
@import "bootstrap/forms";
|
||||
@import "bootstrap/buttons";
|
||||
@import "bootstrap/transitions";
|
||||
@import "bootstrap/dropdown";
|
||||
@import "bootstrap/button-group";
|
||||
@import "bootstrap/nav";
|
||||
@import "bootstrap/navbar";
|
||||
@import "bootstrap/card";
|
||||
@import "bootstrap/accordion";
|
||||
@import "bootstrap/breadcrumb";
|
||||
@import "bootstrap/pagination";
|
||||
@import "bootstrap/badge";
|
||||
@import "bootstrap/alert";
|
||||
@import "bootstrap/progress";
|
||||
@import "bootstrap/list-group";
|
||||
@import "bootstrap/close";
|
||||
@import "bootstrap/toasts";
|
||||
@import "bootstrap/modal";
|
||||
@import "bootstrap/tooltip";
|
||||
@import "bootstrap/popover";
|
||||
@import "bootstrap/carousel";
|
||||
@import "bootstrap/spinners";
|
||||
@import "bootstrap/offcanvas";
|
||||
@import "bootstrap/placeholders";
|
||||
|
||||
@import "bootstrap/helpers";
|
||||
|
||||
@import "bootstrap/utilities/api";
|
||||
|
||||
@import "bootscore-style";
|
||||
@import "bootscore-woocommerce"; // Comment or delete this line if WooCommerce styles are not needed
|
||||
@import "bootscore-custom";
|
27
composer.json
Normal file
27
composer.json
Normal file
@ -0,0 +1,27 @@
|
||||
{
|
||||
"name": "bootscore/aira-theme",
|
||||
"description": "child theme for bootscore",
|
||||
"type": "wordpress-theme",
|
||||
"license": "MIT",
|
||||
"authors": [
|
||||
{
|
||||
"name": "Telos Digital - Nataliia Bobrova"
|
||||
}
|
||||
],
|
||||
"readme": "README.md",
|
||||
"homepage": "https://bootscore.me/",
|
||||
"support": {
|
||||
"issues": "https://github.com/bootscore/bootscore/issues",
|
||||
"forum": "https://github.com/orgs/bootscore/discussions",
|
||||
"source": "https://github.com/bootscore/bootscore-child",
|
||||
"docs": "https://bootscore.me/documentation/"
|
||||
},
|
||||
"minimum-stability": "stable",
|
||||
"keywords": [
|
||||
"wordpress",
|
||||
"theme",
|
||||
"bootscore",
|
||||
"bootstrap",
|
||||
"woocommerce"
|
||||
]
|
||||
}
|
175
functions.php
Normal file
175
functions.php
Normal file
@ -0,0 +1,175 @@
|
||||
<?php
|
||||
|
||||
/**
|
||||
* @package Bootscore Child
|
||||
*
|
||||
* @version 6.0.0
|
||||
*/
|
||||
|
||||
|
||||
// Exit if accessed directly
|
||||
defined('ABSPATH') || exit;
|
||||
|
||||
|
||||
/**
|
||||
* Enqueue scripts and styles
|
||||
*/
|
||||
add_action('wp_enqueue_scripts', 'bootscore_child_enqueue_styles');
|
||||
function bootscore_child_enqueue_styles() {
|
||||
|
||||
// Compiled main.css
|
||||
$modified_bootscoreChildCss = date('YmdHi', filemtime(get_stylesheet_directory() . '/assets/css/main.css'));
|
||||
wp_enqueue_style('main', get_stylesheet_directory_uri() . '/assets/css/main.css', array('parent-style'), $modified_bootscoreChildCss);
|
||||
|
||||
// style.css
|
||||
wp_enqueue_style('parent-style', get_template_directory_uri() . '/style.css');
|
||||
|
||||
// custom.js
|
||||
// Get modification time. Enqueue file with modification date to prevent browser from loading cached scripts when file content changes.
|
||||
$modificated_CustomJS = date('YmdHi', filemtime(get_stylesheet_directory() . '/assets/js/custom.js'));
|
||||
wp_enqueue_script('custom-js', get_stylesheet_directory_uri() . '/assets/js/custom.js', array('jquery'), $modificated_CustomJS, false, true);
|
||||
}
|
||||
|
||||
|
||||
/* THEME ------------------------------------------------------------------------ */
|
||||
/**
|
||||
* Change path to logos
|
||||
*/
|
||||
function change_logo_path($logo, $color) {
|
||||
return get_stylesheet_directory_uri() . '/assets/img/logo/AIRA_logo.svg';
|
||||
}
|
||||
add_filter('bootscore/logo', 'change_logo_path', 10, 2);
|
||||
|
||||
/**
|
||||
* Header position and bg
|
||||
*/
|
||||
function header_bg_class() {
|
||||
return "position-relative bg-black";
|
||||
}
|
||||
add_filter('bootscore/class/header', 'header_bg_class', 10, 2);
|
||||
|
||||
|
||||
/**
|
||||
* Footer top classes
|
||||
*/
|
||||
function footer_top_class() {
|
||||
return " ";
|
||||
}
|
||||
add_filter('bootscore/class/footer/top', 'footer_top_class', 10, 2);
|
||||
|
||||
|
||||
/**
|
||||
* Change footer column wrapper classes
|
||||
*/
|
||||
function footer_class() {
|
||||
return "bg-black text-white pt-5";
|
||||
}
|
||||
add_filter('bootscore/class/footer/columns', 'footer_class', 10, 2);
|
||||
|
||||
|
||||
/**
|
||||
* Change footer info classes
|
||||
*/
|
||||
function footer_info_class() {
|
||||
return "bg-black text-white pt-5 pb-4 small";
|
||||
}
|
||||
add_filter('bootscore/class/footer/info', 'footer_info_class', 10, 2);
|
||||
|
||||
/* BLOCKS ------------------------------------------------------------------------ */
|
||||
|
||||
function register_my_block()
|
||||
{
|
||||
register_block_type( dirname(__FILE__) . '/src/blocks/featured-image-block/build/featured-image-block/block.json' );
|
||||
}
|
||||
add_action('init', 'register_my_block');
|
||||
|
||||
|
||||
/* ADD HEIGHT */
|
||||
function register_cover_block_styles_1() {
|
||||
register_block_style(
|
||||
'core/cover', // name of your block
|
||||
array(
|
||||
'name' => 'fixed-height-272', // part of the class that gets added to the block.
|
||||
'label' => __( ' Fixed Height 272px', 'style-1' ),
|
||||
)
|
||||
);
|
||||
}
|
||||
add_action( 'init', 'register_cover_block_styles_1' );
|
||||
|
||||
|
||||
function register_cover_block_styles_2() {
|
||||
register_block_style(
|
||||
'core/cover', // name of your block
|
||||
array(
|
||||
'name' => 'fixed-height-300', // part of the class that gets added to the block.
|
||||
'label' => __( ' Fixed Height 300px', 'style-2' ),
|
||||
)
|
||||
);
|
||||
}
|
||||
add_action( 'init', 'register_cover_block_styles_2' );
|
||||
|
||||
|
||||
function register_cover_block_styles_3() {
|
||||
register_block_style(
|
||||
'core/cover', // name of your block
|
||||
array(
|
||||
'name' => 'fixed-height-400', // part of the class that gets added to the block.
|
||||
'label' => __( ' Fixed Height 400px', 'style-3' ),
|
||||
)
|
||||
);
|
||||
}
|
||||
add_action( 'init', 'register_cover_block_styles_3' );
|
||||
|
||||
|
||||
// It doesn't look like fill and outline were added in php, hence have to unregister with JS
|
||||
/**
|
||||
* Gutenberg scripts and styles
|
||||
* @link https://www.billerickson.net/block-styles-in-gutenberg/
|
||||
*/
|
||||
function be_gutenberg_scripts() {
|
||||
|
||||
wp_enqueue_script(
|
||||
'be-editor',
|
||||
get_stylesheet_directory_uri() . '/assets/js/editor.js',
|
||||
array( 'wp-blocks', 'wp-dom' ),
|
||||
filemtime( get_stylesheet_directory() . '/assets/js/editor.js' ),
|
||||
true
|
||||
);
|
||||
}
|
||||
add_action( 'enqueue_block_editor_assets', 'be_gutenberg_scripts' );
|
||||
|
||||
|
||||
if ( ! function_exists( 'bootscore_block_styles' ) ) :
|
||||
/**
|
||||
* Register custom block styles
|
||||
*/
|
||||
function register_button_block_button() {
|
||||
register_block_style(
|
||||
'core/button', // name of your block
|
||||
array(
|
||||
'name' => 'bootstrap-primary', // part of the class that gets added to the block.
|
||||
'label' => __( 'Primary', 'bootstrap-primary' ),
|
||||
)
|
||||
);
|
||||
register_block_style(
|
||||
'core/button', // name of your block
|
||||
array(
|
||||
'name' => 'bootstrap-dark', // part of the class that gets added to the block.
|
||||
'label' => __( 'Dark', 'bootstrap-dark' ),
|
||||
)
|
||||
);
|
||||
}
|
||||
endif;
|
||||
|
||||
add_action( 'init', 'register_button_block_button' );
|
||||
|
||||
|
||||
/* TEMPLATE PAGE */
|
||||
|
||||
/**
|
||||
* Change one or more classes into my-custom-class
|
||||
*/
|
||||
function my_fancy_filter_function() {
|
||||
return "featured-full-width-img bg-dark text-light mb-4";
|
||||
}
|
||||
add_filter('bootscore/class/featured-full-width-img', 'my_fancy_filter_function', 10, 2);
|
39
readme.txt
Normal file
39
readme.txt
Normal file
@ -0,0 +1,39 @@
|
||||
=== Bootscore Child Theme ===
|
||||
|
||||
Contributors: Bastian Kreiter, Justin Kruit, DrDBanner
|
||||
|
||||
Requires at least: 5.0
|
||||
Tested up to: 6.6
|
||||
Requires PHP: 7.4
|
||||
Stable tag: 6.0.0
|
||||
License: MIT License
|
||||
License URI: https://github.com/bootscore/bootscore-child/blob/main/LICENSE
|
||||
|
||||
|
||||
== Description ==
|
||||
|
||||
Child Theme for Bootscore, Copyright 2019 - 2024 Bootscore.
|
||||
|
||||
Start developing your new project right away in a upgrade-safe way using overrides by copying files from Bootscore parent theme.
|
||||
|
||||
|
||||
== Live preview ==
|
||||
|
||||
https://bootscore.me
|
||||
|
||||
|
||||
== Installation ==
|
||||
|
||||
1. In your admin panel, go to Appearance > Themes and click the Add New button.
|
||||
2. Click Upload Theme and Choose File, then select the theme's .zip file. Click Install Now.
|
||||
3. Click Activate to use your new theme right away.
|
||||
|
||||
|
||||
== Documentation ==
|
||||
|
||||
https://bootscore.me/documentation/using-the-child-themes/
|
||||
|
||||
|
||||
== Changelog ==
|
||||
|
||||
Please visit https://github.com/bootscore/bootscore-child/releases for a detailed changelog.
|
BIN
screenshot.png
Normal file
BIN
screenshot.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 16 KiB |
18
src/blocks/featured-image-block/.editorconfig
Normal file
18
src/blocks/featured-image-block/.editorconfig
Normal file
@ -0,0 +1,18 @@
|
||||
# This file is for unifying the coding style for different editors and IDEs
|
||||
# editorconfig.org
|
||||
|
||||
# WordPress Coding Standards
|
||||
# https://make.wordpress.org/core/handbook/coding-standards/
|
||||
|
||||
root = true
|
||||
|
||||
[*]
|
||||
charset = utf-8
|
||||
end_of_line = lf
|
||||
insert_final_newline = true
|
||||
trim_trailing_whitespace = true
|
||||
indent_style = tab
|
||||
|
||||
[*.{yml,yaml}]
|
||||
indent_style = space
|
||||
indent_size = 2
|
30
src/blocks/featured-image-block/.gitignore
vendored
Normal file
30
src/blocks/featured-image-block/.gitignore
vendored
Normal file
@ -0,0 +1,30 @@
|
||||
# Logs
|
||||
logs
|
||||
*.log
|
||||
npm-debug.log*
|
||||
yarn-debug.log*
|
||||
yarn-error.log*
|
||||
|
||||
# Coverage directory used by tools like istanbul
|
||||
coverage
|
||||
|
||||
# Compiled binary addons (https://nodejs.org/api/addons.html)
|
||||
build/Release
|
||||
|
||||
# Dependency directories
|
||||
node_modules/
|
||||
|
||||
# Optional npm cache directory
|
||||
.npm
|
||||
|
||||
# Optional eslint cache
|
||||
.eslintcache
|
||||
|
||||
# Output of `npm pack`
|
||||
*.tgz
|
||||
|
||||
# Output of `wp-scripts plugin-zip`
|
||||
*.zip
|
||||
|
||||
# dotenv environment variables file
|
||||
.env
|
@ -0,0 +1,33 @@
|
||||
{
|
||||
"$schema": "https://schemas.wp.org/trunk/block.json",
|
||||
"apiVersion": 2,
|
||||
"name": "create-block/featured-image-block",
|
||||
"version": "0.1.0",
|
||||
"title": "Featured Image Block",
|
||||
"category": "widgets",
|
||||
"icon": "format-image",
|
||||
"description": "Example block scaffolded with Create Block tool.",
|
||||
"supports": {
|
||||
"html": false
|
||||
},
|
||||
"attributes": {
|
||||
"heading": {
|
||||
"type": "string"
|
||||
},
|
||||
"buttonText": {
|
||||
"type": "string",
|
||||
"default": "Learn More"
|
||||
},
|
||||
"buttonLink": {
|
||||
"type": "string"
|
||||
},
|
||||
"backgroundImage": {
|
||||
"type": "integer"
|
||||
}
|
||||
},
|
||||
"textdomain": "double-image",
|
||||
"editorScript": "file:./index.js",
|
||||
"editorStyle": "file:./index.css",
|
||||
"style": "file:./style-index.css",
|
||||
"render": "file:./render.php"
|
||||
}
|
@ -0,0 +1,8 @@
|
||||
/*!*************************************************************************************************************************************************************************************************************************************************************!*\
|
||||
!*** css ./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[4].use[1]!./node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[4].use[2]!./node_modules/sass-loader/dist/cjs.js??ruleSet[1].rules[4].use[3]!./src/featured-image-block/editor.scss ***!
|
||||
\*************************************************************************************************************************************************************************************************************************************************************/
|
||||
/**
|
||||
* The following styles get applied inside the editor only.
|
||||
*
|
||||
* Replace them with your own styles or remove the file completely.
|
||||
*/
|
@ -0,0 +1 @@
|
||||
<?php return array('dependencies' => array('react', 'react-dom', 'react-jsx-runtime', 'wp-api-fetch', 'wp-block-editor', 'wp-blocks', 'wp-components', 'wp-compose', 'wp-core-data', 'wp-data', 'wp-date', 'wp-deprecated', 'wp-dom-ready', 'wp-editor', 'wp-element', 'wp-hooks', 'wp-html-entities', 'wp-i18n', 'wp-primitives', 'wp-rich-text', 'wp-url'), 'version' => '239178da82c0d8063b17');
|
@ -0,0 +1,10 @@
|
||||
/*!*************************************************************************************************************************************************************************************************************************************************************!*\
|
||||
!*** css ./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[4].use[1]!./node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[4].use[2]!./node_modules/sass-loader/dist/cjs.js??ruleSet[1].rules[4].use[3]!./src/featured-image-block/editor.scss ***!
|
||||
\*************************************************************************************************************************************************************************************************************************************************************/
|
||||
/**
|
||||
* The following styles get applied inside the editor only.
|
||||
*
|
||||
* Replace them with your own styles or remove the file completely.
|
||||
*/
|
||||
|
||||
/*# sourceMappingURL=index.css.map*/
|
@ -0,0 +1 @@
|
||||
{"version":3,"file":"featured-image-block/index.css","mappings":";;;AAAA;;;;EAAA,C","sources":["webpack://featured-image-block/./src/featured-image-block/editor.scss"],"sourcesContent":["/**\n * The following styles get applied inside the editor only.\n *\n * Replace them with your own styles or remove the file completely.\n */\n\n\n"],"names":[],"sourceRoot":""}
|
42714
src/blocks/featured-image-block/build/featured-image-block/index.js
Normal file
42714
src/blocks/featured-image-block/build/featured-image-block/index.js
Normal file
File diff suppressed because it is too large
Load Diff
File diff suppressed because one or more lines are too long
@ -0,0 +1,28 @@
|
||||
<?php
|
||||
/**
|
||||
* Block render callback.
|
||||
*
|
||||
* @param array $attributes The block attributes.
|
||||
* @param string $content The block content.
|
||||
* @param WP_Block $block The block object.
|
||||
*
|
||||
* @package wpdev
|
||||
*/
|
||||
?>
|
||||
|
||||
<div <?php echo get_block_wrapper_attributes(); ?>
|
||||
style="background-image: url(<?php echo wp_get_attachment_image_url($attributes['backgroundImage']); ?>"
|
||||
tabindex="0">
|
||||
|
||||
<div class="call-to-action">
|
||||
<?php
|
||||
if (isset($attributes['heading']) && $attributes['heading']) {
|
||||
echo "<h2>";
|
||||
echo esc_html($attributes['heading']);
|
||||
echo "</h2>";
|
||||
}
|
||||
?>
|
||||
|
||||
<a href="<?php echo esc_html($attributes['buttonLink']); ?>" class="btn btn-primary btn-lg"><?php echo esc_html($attributes['buttonText']); ?></a>
|
||||
</div>
|
||||
</div>
|
@ -0,0 +1,32 @@
|
||||
/*!************************************************************************************************************************************************************************************************************************************************************!*\
|
||||
!*** css ./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[4].use[1]!./node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[4].use[2]!./node_modules/sass-loader/dist/cjs.js??ruleSet[1].rules[4].use[3]!./src/featured-image-block/style.scss ***!
|
||||
\************************************************************************************************************************************************************************************************************************************************************/
|
||||
/**
|
||||
* The following styles get applied both on the front of your site
|
||||
* and in the editor.
|
||||
*
|
||||
* Replace them with your own styles or remove the file completely.
|
||||
*/
|
||||
body:not(.wp-admin) .wp-block-create-block-featured-image-block {
|
||||
background-repeat: no-repeat;
|
||||
width: auto;
|
||||
height: 600px;
|
||||
display: flex;
|
||||
justify-content: end;
|
||||
align-items: center;
|
||||
}
|
||||
body:not(.wp-admin) .wp-block-create-block-featured-image-block .call-to-action {
|
||||
margin-right: 2em;
|
||||
margin-left: 2em;
|
||||
background-color: white;
|
||||
padding: 1em;
|
||||
}
|
||||
body:not(.wp-admin) .wp-block-create-block-featured-image-block h2 {
|
||||
font-size: 40px;
|
||||
margin-bottom: 0.5em;
|
||||
}
|
||||
|
||||
.wp-block-create-block-featured-image-block img,
|
||||
.wp-block-create-block-featured-image-block .call-to-action {
|
||||
margin-bottom: 0.5em;
|
||||
}
|
@ -0,0 +1,34 @@
|
||||
/*!************************************************************************************************************************************************************************************************************************************************************!*\
|
||||
!*** css ./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[4].use[1]!./node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[4].use[2]!./node_modules/sass-loader/dist/cjs.js??ruleSet[1].rules[4].use[3]!./src/featured-image-block/style.scss ***!
|
||||
\************************************************************************************************************************************************************************************************************************************************************/
|
||||
/**
|
||||
* The following styles get applied both on the front of your site
|
||||
* and in the editor.
|
||||
*
|
||||
* Replace them with your own styles or remove the file completely.
|
||||
*/
|
||||
body:not(.wp-admin) .wp-block-create-block-featured-image-block {
|
||||
background-repeat: no-repeat;
|
||||
width: auto;
|
||||
height: 600px;
|
||||
display: flex;
|
||||
justify-content: end;
|
||||
align-items: center;
|
||||
}
|
||||
body:not(.wp-admin) .wp-block-create-block-featured-image-block .call-to-action {
|
||||
margin-left: 2em;
|
||||
margin-right: 2em;
|
||||
background-color: white;
|
||||
padding: 1em;
|
||||
}
|
||||
body:not(.wp-admin) .wp-block-create-block-featured-image-block h2 {
|
||||
font-size: 40px;
|
||||
margin-bottom: 0.5em;
|
||||
}
|
||||
|
||||
.wp-block-create-block-featured-image-block img,
|
||||
.wp-block-create-block-featured-image-block .call-to-action {
|
||||
margin-bottom: 0.5em;
|
||||
}
|
||||
|
||||
/*# sourceMappingURL=style-index.css.map*/
|
@ -0,0 +1 @@
|
||||
{"version":3,"file":"featured-image-block/style-index.css","mappings":";;;AAAA;;;;;EAAA;AAMC;EACA;EACA;EACA;EACA;EACA;EACA;AACD;AACC;EACC;EACA;EACA;EACA;AACF;AAEC;EACC;EACA;AAAF;;AAIA;;EAEC;AADD,C","sources":["webpack://featured-image-block/./src/featured-image-block/style.scss"],"sourcesContent":["/**\n * The following styles get applied both on the front of your site\n * and in the editor.\n *\n * Replace them with your own styles or remove the file completely.\n */\n body:not(.wp-admin) .wp-block-create-block-featured-image-block {\n\tbackground-repeat: no-repeat;\n\twidth: auto;\n\theight: 600px;\n\tdisplay: flex;\n\tjustify-content: end;\n\talign-items: center;\n\n\t.call-to-action {\n\t\tmargin-left: 2em;\n\t\tmargin-right: 2em;\n\t\tbackground-color: white;\n\t\tpadding: 1em;\n\t}\n\n\th2 {\n\t\tfont-size: 40px;\n\t\tmargin-bottom: .5em;\n\t}\n}\n\n.wp-block-create-block-featured-image-block img,\n.wp-block-create-block-featured-image-block .call-to-action {\n\tmargin-bottom: 0.5em;\n}\n\n"],"names":[],"sourceRoot":""}
|
30
src/blocks/featured-image-block/featured-image-block.php
Normal file
30
src/blocks/featured-image-block/featured-image-block.php
Normal file
@ -0,0 +1,30 @@
|
||||
<?php
|
||||
/**
|
||||
* Plugin Name: Featured Image Block
|
||||
* Description: Example block scaffolded with Create Block tool.
|
||||
* Version: 0.1.0
|
||||
* Requires at least: 6.7
|
||||
* Requires PHP: 7.4
|
||||
* Author: The WordPress Contributors
|
||||
* License: GPL-2.0-or-later
|
||||
* License URI: https://www.gnu.org/licenses/gpl-2.0.html
|
||||
* Text Domain: featured-image-block
|
||||
*
|
||||
* @package CreateBlock
|
||||
*/
|
||||
|
||||
if ( ! defined( 'ABSPATH' ) ) {
|
||||
exit; // Exit if accessed directly.
|
||||
}
|
||||
|
||||
/**
|
||||
* Registers the block using the metadata loaded from the `block.json` file.
|
||||
* Behind the scenes, it registers also all assets so they can be enqueued
|
||||
* through the block editor in the corresponding context.
|
||||
*
|
||||
* @see https://developer.wordpress.org/reference/functions/register_block_type/
|
||||
*/
|
||||
function create_block_featured_image_block_block_init() {
|
||||
register_block_type( __DIR__ . '/build/featured-image-block' );
|
||||
}
|
||||
add_action( 'init', 'create_block_featured_image_block_block_init' );
|
23
src/blocks/featured-image-block/package.json
Normal file
23
src/blocks/featured-image-block/package.json
Normal file
@ -0,0 +1,23 @@
|
||||
{
|
||||
"name": "featured-image-block",
|
||||
"version": "0.1.0",
|
||||
"description": "Block displaying featured image, heading and button..",
|
||||
"author": "The WordPress Contributors",
|
||||
"license": "GPL-2.0-or-later",
|
||||
"main": "build/index.js",
|
||||
"scripts": {
|
||||
"build": "wp-scripts build --webpack-copy-php",
|
||||
"format": "wp-scripts format",
|
||||
"lint:css": "wp-scripts lint-style",
|
||||
"lint:js": "wp-scripts lint-js",
|
||||
"packages-update": "wp-scripts packages-update",
|
||||
"plugin-zip": "wp-scripts plugin-zip",
|
||||
"start": "wp-scripts start --webpack-copy-php"
|
||||
},
|
||||
"devDependencies": {
|
||||
"@wordpress/scripts": "^30.11.0"
|
||||
},
|
||||
"dependencies": {
|
||||
"@10up/block-components": "^1.20.0"
|
||||
}
|
||||
}
|
55
src/blocks/featured-image-block/readme.txt
Normal file
55
src/blocks/featured-image-block/readme.txt
Normal file
@ -0,0 +1,55 @@
|
||||
=== Featured Image Block ===
|
||||
Contributors: The WordPress Contributors
|
||||
Tags: block
|
||||
Tested up to: 6.7
|
||||
Stable tag: 0.1.0
|
||||
License: GPL-2.0-or-later
|
||||
License URI: https://www.gnu.org/licenses/gpl-2.0.html
|
||||
|
||||
Example block scaffolded with Create Block tool.
|
||||
|
||||
== Description ==
|
||||
|
||||
This is the long description. No limit, and you can use Markdown (as well as in the following sections).
|
||||
|
||||
For backwards compatibility, if this section is missing, the full length of the short description will be used, and
|
||||
Markdown parsed.
|
||||
|
||||
== Installation ==
|
||||
|
||||
This section describes how to install the plugin and get it working.
|
||||
|
||||
e.g.
|
||||
|
||||
1. Upload the plugin files to the `/wp-content/plugins/featured-image-block` directory, or install the plugin through the WordPress plugins screen directly.
|
||||
1. Activate the plugin through the 'Plugins' screen in WordPress
|
||||
|
||||
|
||||
== Frequently Asked Questions ==
|
||||
|
||||
= A question that someone might have =
|
||||
|
||||
An answer to that question.
|
||||
|
||||
= What about foo bar? =
|
||||
|
||||
Answer to foo bar dilemma.
|
||||
|
||||
== Screenshots ==
|
||||
|
||||
1. This screen shot description corresponds to screenshot-1.(png|jpg|jpeg|gif). Note that the screenshot is taken from
|
||||
the /assets directory or the directory that contains the stable readme.txt (tags or trunk). Screenshots in the /assets
|
||||
directory take precedence. For example, `/assets/screenshot-1.png` would win over `/tags/4.3/screenshot-1.png`
|
||||
(or jpg, jpeg, gif).
|
||||
2. This is the second screen shot
|
||||
|
||||
== Changelog ==
|
||||
|
||||
= 0.1.0 =
|
||||
* Release
|
||||
|
||||
== Arbitrary section ==
|
||||
|
||||
You may provide arbitrary sections, in the same format as the ones above. This may be of use for extremely complicated
|
||||
plugins where more information needs to be conveyed that doesn't fit into the categories of "description" or
|
||||
"installation." Arbitrary sections will be shown below the built-in sections outlined above.
|
@ -0,0 +1,33 @@
|
||||
{
|
||||
"$schema": "https://schemas.wp.org/trunk/block.json",
|
||||
"apiVersion": 2,
|
||||
"name": "create-block/featured-image-block",
|
||||
"version": "0.1.0",
|
||||
"title": "Featured Image Block",
|
||||
"category": "widgets",
|
||||
"icon": "format-image",
|
||||
"description": "Block displaying featured image, heading and button.",
|
||||
"supports": {
|
||||
"html": false
|
||||
},
|
||||
"attributes": {
|
||||
"heading": {
|
||||
"type": "string"
|
||||
},
|
||||
"buttonText": {
|
||||
"type": "string",
|
||||
"default": "Learn More"
|
||||
},
|
||||
"buttonLink": {
|
||||
"type": "string"
|
||||
},
|
||||
"backgroundImage": {
|
||||
"type": "integer"
|
||||
}
|
||||
},
|
||||
"textdomain": "double-image",
|
||||
"editorScript": "file:./index.js",
|
||||
"editorStyle": "file:./index.css",
|
||||
"style": "file:./style-index.css",
|
||||
"render": "file:./render.php"
|
||||
}
|
148
src/blocks/featured-image-block/src/featured-image-block/edit.js
Normal file
148
src/blocks/featured-image-block/src/featured-image-block/edit.js
Normal file
@ -0,0 +1,148 @@
|
||||
/**
|
||||
* Retrieves the translation of text.
|
||||
*
|
||||
* @see https://developer.wordpress.org/block-editor/reference-guides/packages/packages-i18n/
|
||||
*/
|
||||
import { __ } from '@wordpress/i18n';
|
||||
|
||||
/**
|
||||
* React hook that is used to mark the block wrapper element.
|
||||
* It provides all the necessary props like the class name.
|
||||
*
|
||||
* @see https://developer.wordpress.org/block-editor/reference-guides/packages/packages-block-editor/#useblockprops
|
||||
*/
|
||||
import { useBlockProps, InspectorControls, BlockControls } from '@wordpress/block-editor';
|
||||
import { Panel, PanelBody, PanelRow, TextControl, Button } from '@wordpress/components';
|
||||
|
||||
import { MediaToolbar, Image } from '@10up/block-components';
|
||||
|
||||
/**
|
||||
* Lets webpack process CSS, SASS or SCSS files referenced in JavaScript files.
|
||||
* Those files can contain any CSS code that gets applied to the editor.
|
||||
*
|
||||
* @see https://www.npmjs.com/package/@wordpress/scripts#using-css
|
||||
*/
|
||||
import './editor.scss';
|
||||
|
||||
/**
|
||||
* The edit function describes the structure of your block in the context of the
|
||||
* editor. This represents what the editor will render when the block is used.
|
||||
*
|
||||
* @see https://developer.wordpress.org/block-editor/reference-guides/block-api/block-edit-save/#edit
|
||||
*
|
||||
* @return {WPElement} Element to render.
|
||||
*/
|
||||
export default function Edit(props) {
|
||||
const { attributes, setAttributes } = props;
|
||||
const { heading, backgroundImage, buttonText, buttonLink } = attributes;
|
||||
|
||||
const handleBackgroundImageSelect = (image) => {
|
||||
setAttributes({
|
||||
backgroundImage: image.id,
|
||||
});
|
||||
};
|
||||
|
||||
const handleBackgroundImageRemove = () => {
|
||||
setAttributes({
|
||||
backgroundImage: null,
|
||||
});
|
||||
};
|
||||
|
||||
|
||||
return (
|
||||
<div { ...useBlockProps() }>
|
||||
|
||||
|
||||
<div class="call-to-action">
|
||||
<h2>{heading}</h2>
|
||||
<a href={buttonLink} class="btn btn-primary btn-lg">{buttonText}</a>
|
||||
</div>
|
||||
|
||||
<InspectorControls>
|
||||
<Panel>
|
||||
<PanelBody title={ __( 'Background Image Settings', 'featured-image-block' ) }>
|
||||
<PanelRow>
|
||||
<Image
|
||||
id={backgroundImage}
|
||||
className="my-image"
|
||||
size="full"
|
||||
onSelect={handleBackgroundImageSelect}
|
||||
labels={{
|
||||
title: 'Select Background Image',
|
||||
instructions: 'Upload a media file or pick one from your media library.'
|
||||
}}
|
||||
/>
|
||||
</PanelRow>
|
||||
<PanelRow>
|
||||
<Button isDestructive variant="link" onClick={handleBackgroundImageRemove}>Remove Background Image</Button>
|
||||
</PanelRow>
|
||||
<PanelRow>
|
||||
<TextControl
|
||||
__nextHasNoMarginBottom
|
||||
__next40pxDefaultSize
|
||||
label={ __(
|
||||
'Heading',
|
||||
'featured-image-block'
|
||||
) }
|
||||
value={ heading || '' }
|
||||
onChange={ ( value ) =>
|
||||
setAttributes( { heading: value } )
|
||||
}
|
||||
/>
|
||||
</PanelRow>
|
||||
<PanelRow>
|
||||
<TextControl
|
||||
__nextHasNoMarginBottom
|
||||
__next40pxDefaultSize
|
||||
label={ __(
|
||||
'Button Link',
|
||||
'featured-image-block'
|
||||
) }
|
||||
value={ buttonLink || '' }
|
||||
onChange={ ( value ) =>
|
||||
setAttributes( { buttonLink: value } )
|
||||
}
|
||||
/>
|
||||
</PanelRow>
|
||||
<PanelRow>
|
||||
<TextControl
|
||||
__nextHasNoMarginBottom
|
||||
__next40pxDefaultSize
|
||||
label={ __(
|
||||
'Button Text',
|
||||
'featured-image-block'
|
||||
) }
|
||||
value={ buttonText || '' }
|
||||
onChange={ ( value ) =>
|
||||
setAttributes( { buttonText: value } )
|
||||
}
|
||||
/>
|
||||
</PanelRow>
|
||||
</PanelBody>
|
||||
</Panel>
|
||||
</InspectorControls>
|
||||
|
||||
|
||||
<BlockControls>
|
||||
<MediaToolbar
|
||||
isOptional
|
||||
id={ backgroundImage }
|
||||
onSelect={ handleBackgroundImageSelect }
|
||||
onRemove={ handleBackgroundImageRemove }
|
||||
/>
|
||||
</BlockControls>
|
||||
|
||||
|
||||
<Image
|
||||
id={backgroundImage}
|
||||
className="my-image"
|
||||
size="full"
|
||||
onSelect={handleBackgroundImageSelect}
|
||||
labels={{
|
||||
title: 'Select Background Image',
|
||||
instructions: 'Upload a media file or pick one from your media library.'
|
||||
}}
|
||||
/>
|
||||
</div>
|
||||
);
|
||||
}
|
@ -0,0 +1,7 @@
|
||||
/**
|
||||
* The following styles get applied inside the editor only.
|
||||
*
|
||||
* Replace them with your own styles or remove the file completely.
|
||||
*/
|
||||
|
||||
|
@ -0,0 +1,40 @@
|
||||
/**
|
||||
* Registers a new block provided a unique name and an object defining its behavior.
|
||||
*
|
||||
* @see https://developer.wordpress.org/block-editor/reference-guides/block-api/block-registration/
|
||||
*/
|
||||
import { registerBlockType } from '@wordpress/blocks';
|
||||
|
||||
/**
|
||||
* Lets webpack process CSS, SASS or SCSS files referenced in JavaScript files.
|
||||
* All files containing `style` keyword are bundled together. The code used
|
||||
* gets applied both to the front of your site and to the editor.
|
||||
*
|
||||
* @see https://www.npmjs.com/package/@wordpress/scripts#using-css
|
||||
*/
|
||||
import './style.scss';
|
||||
|
||||
/**
|
||||
* Internal dependencies
|
||||
*/
|
||||
import Edit from './edit';
|
||||
import metadata from './block.json';
|
||||
|
||||
/**
|
||||
* Every block starts by registering a new block type definition.
|
||||
*
|
||||
* @see https://developer.wordpress.org/block-editor/reference-guides/block-api/block-registration/
|
||||
*/
|
||||
registerBlockType( metadata.name, {
|
||||
/**
|
||||
* @see ./edit.js
|
||||
*/
|
||||
edit: Edit,
|
||||
} );
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
@ -0,0 +1,28 @@
|
||||
<?php
|
||||
/**
|
||||
* Block render callback.
|
||||
*
|
||||
* @param array $attributes The block attributes.
|
||||
* @param string $content The block content.
|
||||
* @param WP_Block $block The block object.
|
||||
*
|
||||
* @package wpdev
|
||||
*/
|
||||
?>
|
||||
|
||||
<div <?php echo get_block_wrapper_attributes(); ?>
|
||||
style="background-image: url(<?php echo wp_get_attachment_image_url($attributes['backgroundImage']); ?>"
|
||||
tabindex="0">
|
||||
|
||||
<div class="call-to-action">
|
||||
<?php
|
||||
if (isset($attributes['heading']) && $attributes['heading']) {
|
||||
echo "<h2>";
|
||||
echo esc_html($attributes['heading']);
|
||||
echo "</h2>";
|
||||
}
|
||||
?>
|
||||
|
||||
<a href="<?php echo esc_html($attributes['buttonLink']); ?>" class="btn btn-primary btn-lg"><?php echo esc_html($attributes['buttonText']); ?></a>
|
||||
</div>
|
||||
</div>
|
@ -0,0 +1,32 @@
|
||||
/**
|
||||
* The following styles get applied both on the front of your site
|
||||
* and in the editor.
|
||||
*
|
||||
* Replace them with your own styles or remove the file completely.
|
||||
*/
|
||||
body:not(.wp-admin) .wp-block-create-block-featured-image-block {
|
||||
background-repeat: no-repeat;
|
||||
width: auto;
|
||||
height: 600px;
|
||||
display: flex;
|
||||
justify-content: end;
|
||||
align-items: center;
|
||||
|
||||
.call-to-action {
|
||||
margin-left: 2em;
|
||||
margin-right: 2em;
|
||||
background-color: white;
|
||||
padding: 1em;
|
||||
}
|
||||
|
||||
h2 {
|
||||
font-size: 40px;
|
||||
margin-bottom: .5em;
|
||||
}
|
||||
}
|
||||
|
||||
.wp-block-create-block-featured-image-block img,
|
||||
.wp-block-create-block-featured-image-block .call-to-action {
|
||||
margin-bottom: 0.5em;
|
||||
}
|
||||
|
@ -0,0 +1,25 @@
|
||||
/**
|
||||
* Use this file for JavaScript code that you want to run in the front-end
|
||||
* on posts/pages that contain this block.
|
||||
*
|
||||
* When this file is defined as the value of the `viewScript` property
|
||||
* in `block.json` it will be enqueued on the front end of the site.
|
||||
*
|
||||
* Example:
|
||||
*
|
||||
* ```js
|
||||
* {
|
||||
* "viewScript": "file:./view.js"
|
||||
* }
|
||||
* ```
|
||||
*
|
||||
* If you're not making any changes to this file because your project doesn't need any
|
||||
* JavaScript running in the front-end, then you should delete this file and remove
|
||||
* the `viewScript` property from `block.json`.
|
||||
*
|
||||
* @see https://developer.wordpress.org/block-editor/reference-guides/block-api/block-metadata/#view-script
|
||||
*/
|
||||
|
||||
/* eslint-disable no-console */
|
||||
console.log( 'Hello World! (from create-block-featured-image-block block)' );
|
||||
/* eslint-enable no-console */
|
18
style.css
Normal file
18
style.css
Normal file
@ -0,0 +1,18 @@
|
||||
/*
|
||||
Theme Name: AIRA THEME
|
||||
Description: Bootscore Child Theme
|
||||
Author: Telos Digital based on Bootscore
|
||||
Author URI: https://bootscore.me
|
||||
Template: bootscore
|
||||
Version: 6.0.0
|
||||
Requires at least: 5.0
|
||||
Tested up to: 6.6
|
||||
Requires PHP: 7.4
|
||||
License: MIT License
|
||||
License URI: https://github.com/bootscore/bootscore-child/blob/main/LICENSE
|
||||
Text Domain: bootscore
|
||||
*/
|
||||
|
||||
/*
|
||||
All style editing is done via /assets/scss/_bootscore_custom.scss
|
||||
*/
|
103
theme.json
Normal file
103
theme.json
Normal file
@ -0,0 +1,103 @@
|
||||
{
|
||||
"$schema": "https://schemas.wp.org/trunk/theme.json",
|
||||
"version": 3,
|
||||
"settings": {
|
||||
"color": {
|
||||
"palette": [
|
||||
{
|
||||
"slug": "foreground",
|
||||
"color": "#FFFFFF",
|
||||
"name": "Foreground"
|
||||
},
|
||||
{
|
||||
"slug": "background",
|
||||
"color": "#000000",
|
||||
"name": "Background"
|
||||
},
|
||||
{
|
||||
"slug": "primary",
|
||||
"color": "#e30613",
|
||||
"name": "Primary"
|
||||
},
|
||||
{
|
||||
"slug": "secondary",
|
||||
"color": "#cccccc",
|
||||
"name": "Secondary"
|
||||
},
|
||||
{
|
||||
"slug": "tertiary",
|
||||
"color": "#f5f5f5",
|
||||
"name": "Tertiary"
|
||||
}
|
||||
]
|
||||
}
|
||||
},
|
||||
"styles": {
|
||||
"elements": {
|
||||
"button": {
|
||||
"color": {
|
||||
"background": "#e50615",
|
||||
"text": "#ffffff"
|
||||
},
|
||||
"border": {
|
||||
"color": "#e50615",
|
||||
"radius": "0",
|
||||
"width": "1px",
|
||||
"style": "solid"
|
||||
},
|
||||
"spacing": {
|
||||
"padding": {
|
||||
"top": "0.5rem",
|
||||
"right": "1rem",
|
||||
"bottom": "0.5rem",
|
||||
"left": "1rem"
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"blocks": {
|
||||
"core/button": {
|
||||
"variations": {
|
||||
"bootstrap-primary": {
|
||||
"border": {
|
||||
"color": "#e50615",
|
||||
"radius": "0",
|
||||
"style": "solid",
|
||||
"width": "1px"
|
||||
},
|
||||
"color": {
|
||||
"background": "#e50615"
|
||||
},
|
||||
"spacing": {
|
||||
"padding": {
|
||||
"top": "0.5rem",
|
||||
"right": "1rem",
|
||||
"bottom": "0.5rem",
|
||||
"left": "1rem"
|
||||
}
|
||||
}
|
||||
},
|
||||
"bootstrap-dark": {
|
||||
"border": {
|
||||
"color": "#000",
|
||||
"radius": "0",
|
||||
"style": "solid",
|
||||
"width": "1px"
|
||||
},
|
||||
"color": {
|
||||
"background": "#000"
|
||||
},
|
||||
"spacing": {
|
||||
"padding": {
|
||||
"top": "0.5rem",
|
||||
"right": "1rem",
|
||||
"bottom": "0.5rem",
|
||||
"left": "1rem"
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
Loading…
x
Reference in New Issue
Block a user