Ned Zimmerman
7 years ago
committed by
GitHub
18 changed files with 1054 additions and 378 deletions
@ -1,10 +0,0 @@ |
|||||||
<?php |
|
||||||
|
|
||||||
namespace Aldine; |
|
||||||
|
|
||||||
use Sober\Controller\Controller; |
|
||||||
|
|
||||||
class About extends Controller |
|
||||||
{ |
|
||||||
|
|
||||||
} |
|
@ -0,0 +1,102 @@ |
|||||||
|
<?php |
||||||
|
|
||||||
|
namespace Aldine; |
||||||
|
|
||||||
|
use Sober\Controller\Controller; |
||||||
|
|
||||||
|
class PageCatalog extends Controller |
||||||
|
{ |
||||||
|
public function licenses() |
||||||
|
{ |
||||||
|
$licenses = (new \Pressbooks\Licensing())->getSupportedTypes(); |
||||||
|
foreach ($licenses as $key => $value) { |
||||||
|
$licenses[$key] = preg_replace("/\([^)]+\)/", '', $value['desc']); |
||||||
|
} |
||||||
|
return $licenses; |
||||||
|
} |
||||||
|
|
||||||
|
public function subjectGroups() |
||||||
|
{ |
||||||
|
return [ |
||||||
|
'business-finance' => [ |
||||||
|
'title' => __('Business and Finance', 'aldine'), |
||||||
|
'subjects' => [ |
||||||
|
'accounting' => 'Accounting', |
||||||
|
'finance' => 'Finance', |
||||||
|
'information-systems' => 'Information Systems', |
||||||
|
'management' => 'Management', |
||||||
|
'marketing' => 'Marketing', |
||||||
|
'economics' => 'Economics', |
||||||
|
], |
||||||
|
], |
||||||
|
'engineering-technology' => [ |
||||||
|
'title' => __('Engineering & Technology', 'aldine'), |
||||||
|
'subjects' => [ |
||||||
|
'architecture' => 'Architecture', |
||||||
|
'bioengineering' => 'Bioengineering', |
||||||
|
'chemical' => 'Chemical', |
||||||
|
'civil' => 'Civil', |
||||||
|
'electrical' => 'Electrical', |
||||||
|
'mechanical' => 'Mechanical', |
||||||
|
'mining-and-materials' => 'Mining and Materials', |
||||||
|
'urban-planning' => 'Urban Planning', |
||||||
|
'computer-science' => 'Computer Science', |
||||||
|
], |
||||||
|
], |
||||||
|
'health-sciences' => [ |
||||||
|
'title' => __('Health Sciences', 'aldine'), |
||||||
|
'subjects' => [ |
||||||
|
'nursing' => 'Nursing', |
||||||
|
'dentistry' => 'Dentistry', |
||||||
|
'medicine' => 'Medicine', |
||||||
|
], |
||||||
|
], |
||||||
|
'humanities-arts' => [ |
||||||
|
'title' => __('Humanities & Arts', 'aldine'), |
||||||
|
'subjects' => [ |
||||||
|
'archaeology' => 'Archaeology', |
||||||
|
'art' => 'Art', |
||||||
|
'classics' => 'Classics', |
||||||
|
'literature' => 'Literature', |
||||||
|
'history' => 'History', |
||||||
|
'media' => 'Media', |
||||||
|
'music' => 'Music', |
||||||
|
'philosophy' => 'Philosophy', |
||||||
|
'religion' => 'Religion', |
||||||
|
'language' => 'Language', |
||||||
|
], |
||||||
|
], |
||||||
|
'reference' => [ |
||||||
|
'title' => __('Reference', 'aldine'), |
||||||
|
'subjects' => [ |
||||||
|
'student-guides' => 'Student Guides', |
||||||
|
'teaching-guides' => 'Teaching Guides', |
||||||
|
], |
||||||
|
], |
||||||
|
'science' => [ |
||||||
|
'title' => __('Sciences', 'aldine'), |
||||||
|
'subjects' => [ |
||||||
|
'biology' => 'Biology', |
||||||
|
'chemistry' => 'Chemistry', |
||||||
|
'environent-and-earth-sciences' => 'Environment and Earth Sciences', |
||||||
|
'geography' => 'Geography', |
||||||
|
'mathematics' => 'Mathematics', |
||||||
|
'physics' => 'Physics', |
||||||
|
], |
||||||
|
], |
||||||
|
'social-sciences' => [ |
||||||
|
'title' => __('Social Sciences', 'aldine'), |
||||||
|
'subjects' => [ |
||||||
|
'anthropology' => 'Anthropology', |
||||||
|
'gender-studies' => 'Gender Studies', |
||||||
|
'linguistics' => 'Linguistics', |
||||||
|
'museums-libraries-and-information-sciences' => 'Museums, Libraries, and Information Sciences', |
||||||
|
'political-science' => 'Political Science', |
||||||
|
'psychology' => 'Psychology', |
||||||
|
'social-work' => 'Social Work', |
||||||
|
'sociology' => 'Sociology', |
||||||
|
], |
||||||
|
], |
||||||
|
]; |
||||||
|
} |
||||||
|
} |
@ -1,3 +1,7 @@ |
|||||||
@function rem($pixels, $context: $base-font-size) { |
@function rem($pixels, $context: $base-font-size) { |
||||||
@return #{$pixels / $context}rem; |
@return #{$pixels / $context}rem; |
||||||
} |
} |
||||||
|
|
||||||
|
@function percent($target, $context) { |
||||||
|
@return ($target / $context) * 100%; |
||||||
|
} |
||||||
|
@ -1,354 +1,2 @@ |
|||||||
.home { |
@import 'pages/front-page'; |
||||||
.block { |
@import 'pages/catalog'; |
||||||
flex-direction: column; |
|
||||||
justify-content: center; |
|
||||||
align-items: center; |
|
||||||
padding: 0 0.78125rem; |
|
||||||
display: flex; |
|
||||||
height: rem(445); |
|
||||||
background-color: $white; |
|
||||||
margin-left: auto; |
|
||||||
margin-right: auto; |
|
||||||
text-align: center; |
|
||||||
|
|
||||||
p { |
|
||||||
font-size: rem(18); |
|
||||||
line-height: (32/16); |
|
||||||
} |
|
||||||
} |
|
||||||
|
|
||||||
.blocks.blocks-2, |
|
||||||
.blocks.blocks-3 { |
|
||||||
.widget_text:nth-child(2) { |
|
||||||
margin-right: 0.5rem; |
|
||||||
margin-left: 0.5rem; |
|
||||||
border: solid 2px var(--primary, $brand-primary); |
|
||||||
box-shadow: unset; |
|
||||||
} |
|
||||||
} |
|
||||||
|
|
||||||
.blocks.blocks-4 { |
|
||||||
.widget_text:nth-child(2) { |
|
||||||
color: var(--fg, $white); |
|
||||||
background: var(--bg, $brand-accent); |
|
||||||
|
|
||||||
h3 { |
|
||||||
color: var(--fg, $white); |
|
||||||
|
|
||||||
&::before { |
|
||||||
background: var(--fg, $white); |
|
||||||
} |
|
||||||
} |
|
||||||
|
|
||||||
.button { |
|
||||||
color: var(--fg, $white); |
|
||||||
border-color: var(--fg, $white); |
|
||||||
background: transparent; |
|
||||||
|
|
||||||
&:hover, |
|
||||||
&:focus { |
|
||||||
color: var(--bg, $brand-accent); |
|
||||||
background: var(--fg, $white); |
|
||||||
} |
|
||||||
} |
|
||||||
} |
|
||||||
|
|
||||||
.widget_text:nth-child(3) { |
|
||||||
margin-top: 2rem; |
|
||||||
margin-right: 0.5rem; |
|
||||||
margin-left: 0.5rem; |
|
||||||
border: solid 2px var(--block-border, $brand-primary); |
|
||||||
box-shadow: unset; |
|
||||||
} |
|
||||||
} |
|
||||||
|
|
||||||
.blocks.blocks-2 .widget_text:nth-child(2), |
|
||||||
.blocks.blocks-3 .widget_text:nth-child(2), |
|
||||||
.blocks.blocks-4 .widget_text:nth-child(3) { |
|
||||||
background: transparent; |
|
||||||
margin-bottom: rem(400); |
|
||||||
|
|
||||||
&::after { |
|
||||||
z-index: -1; |
|
||||||
content: ""; |
|
||||||
display: block; |
|
||||||
width: 100vw; |
|
||||||
height: rem(444); |
|
||||||
background-image: url('../images/banner.jpg'); |
|
||||||
background-position: center; |
|
||||||
background-size: cover; |
|
||||||
position: absolute; |
|
||||||
top: rem(1410); |
|
||||||
left: 0; |
|
||||||
} |
|
||||||
} |
|
||||||
|
|
||||||
.blocks.blocks-4 .widget_text:nth-child(3) { |
|
||||||
&::after { |
|
||||||
top: rem(1880); |
|
||||||
} |
|
||||||
} |
|
||||||
|
|
||||||
.block, |
|
||||||
.latest-books { |
|
||||||
h3 { |
|
||||||
font-size: rem(30); |
|
||||||
font-weight: 600; |
|
||||||
color: var(--primary, $brand-primary); |
|
||||||
letter-spacing: 2px; |
|
||||||
line-height: (36/30); |
|
||||||
margin: 0; |
|
||||||
|
|
||||||
&::before { |
|
||||||
content: ""; |
|
||||||
display: block; |
|
||||||
margin: 0 auto 1em; |
|
||||||
width: 46px; |
|
||||||
height: 5px; |
|
||||||
background: var(--accent, $brand-accent); |
|
||||||
} |
|
||||||
} |
|
||||||
} |
|
||||||
|
|
||||||
.latest-books { |
|
||||||
height: auto; |
|
||||||
padding: 0 0 50px; |
|
||||||
|
|
||||||
h3 { |
|
||||||
margin-top: 4.375rem; |
|
||||||
margin-bottom: 2.8125rem; |
|
||||||
} |
|
||||||
|
|
||||||
.track { |
|
||||||
max-width: 22.9375rem; |
|
||||||
margin-left: auto; |
|
||||||
margin-right: auto; |
|
||||||
margin-bottom: 2rem; |
|
||||||
padding: 0 0.46875rem; |
|
||||||
position: relative; |
|
||||||
} |
|
||||||
|
|
||||||
.books { |
|
||||||
padding: 0; |
|
||||||
width: 100%; |
|
||||||
} |
|
||||||
|
|
||||||
.book { |
|
||||||
width: 100%; |
|
||||||
max-width: 22.9375rem; |
|
||||||
height: 24.125rem; |
|
||||||
margin: 0 0 2rem; |
|
||||||
padding: 1.5rem 1.85rem 2.1875rem; |
|
||||||
border: solid 2px var(--bg, $brand-accent); |
|
||||||
background: var(--bg, $brand-accent); |
|
||||||
|
|
||||||
a { |
|
||||||
font-family: $font-family-sans-serif; |
|
||||||
color: $white; |
|
||||||
text-decoration: none; |
|
||||||
} |
|
||||||
|
|
||||||
.subject { |
|
||||||
height: 4.625rem; |
|
||||||
font-size: rem(24); |
|
||||||
} |
|
||||||
|
|
||||||
.title { |
|
||||||
height: 13rem; |
|
||||||
font-size: rem(30); |
|
||||||
font-weight: 500; |
|
||||||
line-height: (40/30); |
|
||||||
} |
|
||||||
|
|
||||||
.read-more { |
|
||||||
font-size: rem(18); |
|
||||||
} |
|
||||||
} |
|
||||||
|
|
||||||
.previous, |
|
||||||
.next { |
|
||||||
width: auto; |
|
||||||
height: auto; |
|
||||||
|
|
||||||
svg { |
|
||||||
path { |
|
||||||
fill: var(--primary, $brand-primary); |
|
||||||
} |
|
||||||
} |
|
||||||
} |
|
||||||
} |
|
||||||
} |
|
||||||
|
|
||||||
@media (min-width: $medium) { |
|
||||||
.home { |
|
||||||
.wrap { |
|
||||||
margin-top: rem(-366); |
|
||||||
} |
|
||||||
|
|
||||||
.block { |
|
||||||
width: rem(775); |
|
||||||
height: rem(494); |
|
||||||
margin-bottom: rem(119); |
|
||||||
padding: 0 90px; |
|
||||||
box-shadow: -3px 5px 4px 2px rgba(135, 135, 135, 0.09); |
|
||||||
|
|
||||||
&:last-child { |
|
||||||
margin-bottom: 4.0625rem; |
|
||||||
} |
|
||||||
|
|
||||||
h3 { |
|
||||||
font-size: rem(48); |
|
||||||
line-height: (56/48); |
|
||||||
|
|
||||||
&::before { |
|
||||||
width: 74px; |
|
||||||
} |
|
||||||
} |
|
||||||
|
|
||||||
p { |
|
||||||
font-size: rem(18); |
|
||||||
line-height: (32/18); |
|
||||||
} |
|
||||||
} |
|
||||||
|
|
||||||
.blocks.blocks-2 .widget_text:nth-child(2), |
|
||||||
.blocks.blocks-3 .widget_text:nth-child(2), |
|
||||||
.blocks.blocks-4 .widget_text:nth-child(3) { |
|
||||||
margin-left: auto; |
|
||||||
margin-right: auto; |
|
||||||
} |
|
||||||
|
|
||||||
.blocks.blocks-2 .widget_text:nth-child(2), |
|
||||||
.blocks.blocks-3 .widget_text:nth-child(2), |
|
||||||
.blocks.blocks-4 .widget_text:nth-child(3) { |
|
||||||
margin-bottom: rem(119); |
|
||||||
|
|
||||||
&::after { |
|
||||||
height: rem(600); |
|
||||||
top: rem(1547); |
|
||||||
} |
|
||||||
} |
|
||||||
|
|
||||||
.blocks.blocks-4 .widget_text:nth-child(3) { |
|
||||||
&::after { |
|
||||||
top: rem(2177); |
|
||||||
} |
|
||||||
} |
|
||||||
|
|
||||||
.latest-books { |
|
||||||
width: 100%; |
|
||||||
margin-left: auto; |
|
||||||
margin-right: auto; |
|
||||||
|
|
||||||
h3 { |
|
||||||
margin-bottom: 4.375rem; |
|
||||||
} |
|
||||||
|
|
||||||
.track { |
|
||||||
flex-wrap: nowrap; |
|
||||||
width: 100%; |
|
||||||
max-width: 100%; |
|
||||||
margin: 0; |
|
||||||
padding: 0; |
|
||||||
} |
|
||||||
|
|
||||||
.next, |
|
||||||
.previous { |
|
||||||
position: absolute; |
|
||||||
top: rem(165.5); |
|
||||||
|
|
||||||
svg { |
|
||||||
width: 2.4375rem; |
|
||||||
height: 1.875rem; |
|
||||||
} |
|
||||||
} |
|
||||||
|
|
||||||
.next { |
|
||||||
margin-right: 0.9375rem; |
|
||||||
right: 0; |
|
||||||
} |
|
||||||
|
|
||||||
.previous { |
|
||||||
margin-left: 0.9375rem; |
|
||||||
left: 0; |
|
||||||
} |
|
||||||
|
|
||||||
.books { |
|
||||||
width: auto; |
|
||||||
min-width: 50rem; |
|
||||||
flex-direction: row; |
|
||||||
justify-content: space-between; |
|
||||||
} |
|
||||||
|
|
||||||
.book { |
|
||||||
width: 30%; |
|
||||||
max-width: 19.54rem; |
|
||||||
} |
|
||||||
} |
|
||||||
} |
|
||||||
} |
|
||||||
|
|
||||||
@media (min-width: $large) { |
|
||||||
.home { |
|
||||||
.block { |
|
||||||
width: rem(1115); |
|
||||||
} |
|
||||||
|
|
||||||
.latest-books { |
|
||||||
width: 100%; |
|
||||||
margin-bottom: 0; |
|
||||||
|
|
||||||
.track { |
|
||||||
width: 100%; |
|
||||||
margin: 0 auto; |
|
||||||
max-width: 87rem; |
|
||||||
} |
|
||||||
|
|
||||||
.books { |
|
||||||
width: 100%; |
|
||||||
max-width: 75rem; |
|
||||||
} |
|
||||||
|
|
||||||
.book { |
|
||||||
min-width: 19.54rem; |
|
||||||
max-width: 22.9375rem; |
|
||||||
} |
|
||||||
} |
|
||||||
} |
|
||||||
} |
|
||||||
|
|
||||||
@media (min-width: $extra-large) { |
|
||||||
.home { |
|
||||||
.block { |
|
||||||
width: 1115px; |
|
||||||
box-shadow: -3px 5px 4px 2px rgba(135, 135, 135, 0.09); |
|
||||||
} |
|
||||||
|
|
||||||
.blocks.blocks-4 { |
|
||||||
display: flex; |
|
||||||
flex-flow: row wrap; |
|
||||||
width: 1615px; |
|
||||||
|
|
||||||
.widget_text { |
|
||||||
width: 1115px; |
|
||||||
margin-right: auto; |
|
||||||
margin-left: auto; |
|
||||||
} |
|
||||||
|
|
||||||
.widget_text:nth-child(1), |
|
||||||
.widget_text:nth-child(2) { |
|
||||||
width: 775px; |
|
||||||
} |
|
||||||
|
|
||||||
.widget_text:nth-child(1) { |
|
||||||
margin-right: 65px; |
|
||||||
} |
|
||||||
} |
|
||||||
|
|
||||||
.blocks.blocks-4 .widget_text:nth-child(3) { |
|
||||||
&::after { |
|
||||||
top: rem(1596); |
|
||||||
} |
|
||||||
} |
|
||||||
} |
|
||||||
} |
|
||||||
|
@ -0,0 +1,364 @@ |
|||||||
|
.catalog { |
||||||
|
.page-header { |
||||||
|
margin-top: rem(-68); |
||||||
|
padding-bottom: 2rem; |
||||||
|
} |
||||||
|
|
||||||
|
.network-catalog { |
||||||
|
width: 100%; |
||||||
|
} |
||||||
|
|
||||||
|
.controls { |
||||||
|
width: 100%; |
||||||
|
} |
||||||
|
|
||||||
|
.filters, |
||||||
|
.search, |
||||||
|
.sort { |
||||||
|
width: 100%; |
||||||
|
border-top: solid 2px var(--accent, $brand-accent); |
||||||
|
background: $white; |
||||||
|
|
||||||
|
a { |
||||||
|
display: flex; |
||||||
|
flex-direction: row; |
||||||
|
justify-content: space-between; |
||||||
|
align-items: center; |
||||||
|
width: 100%; |
||||||
|
padding: rem(16) rem(19); |
||||||
|
font-size: rem(16); |
||||||
|
font-weight: 600; |
||||||
|
font-family: $font-family-sans-serif; |
||||||
|
letter-spacing: rem(0.67); |
||||||
|
color: $black; |
||||||
|
|
||||||
|
&:hover, |
||||||
|
&:focus { |
||||||
|
background: #fafdff; |
||||||
|
color: var(--link, $brand-primary); |
||||||
|
} |
||||||
|
} |
||||||
|
|
||||||
|
.has-active-child > a { |
||||||
|
background: var(--link, $brand-primary); |
||||||
|
color: $white; |
||||||
|
|
||||||
|
.arrow { |
||||||
|
path { |
||||||
|
fill: $white; |
||||||
|
} |
||||||
|
} |
||||||
|
} |
||||||
|
|
||||||
|
ul { |
||||||
|
margin: 0; |
||||||
|
padding: 0; |
||||||
|
list-style: none; |
||||||
|
|
||||||
|
li { |
||||||
|
font-size: rem(16); |
||||||
|
font-family: $font-family-sans-serif; |
||||||
|
letter-spacing: rem(0.67); |
||||||
|
|
||||||
|
a { |
||||||
|
display: flex; |
||||||
|
flex-direction: row; |
||||||
|
justify-content: space-between; |
||||||
|
align-items: center; |
||||||
|
font-weight: normal; |
||||||
|
cursor: pointer; |
||||||
|
|
||||||
|
.close { |
||||||
|
display: inline-block; |
||||||
|
float: right; |
||||||
|
margin-top: rem(-2); |
||||||
|
font-size: rem(20); |
||||||
|
opacity: 0; |
||||||
|
transition: opacity 0.5s; |
||||||
|
} |
||||||
|
} |
||||||
|
|
||||||
|
a.is-active { |
||||||
|
font-weight: 600; |
||||||
|
color: var(--link, $brand-primary); |
||||||
|
|
||||||
|
.close { |
||||||
|
opacity: 1; |
||||||
|
} |
||||||
|
} |
||||||
|
} |
||||||
|
} |
||||||
|
} |
||||||
|
|
||||||
|
.arrow { |
||||||
|
path { |
||||||
|
fill: var(--link, $brand-primary); |
||||||
|
} |
||||||
|
} |
||||||
|
|
||||||
|
.is-active > a .arrow { |
||||||
|
transform: rotate(180deg); |
||||||
|
} |
||||||
|
|
||||||
|
.filters { |
||||||
|
.filter-groups { |
||||||
|
display: none; |
||||||
|
border-top: solid 2px var(--accent, $brand-accent); |
||||||
|
|
||||||
|
h3 { |
||||||
|
margin: 0; |
||||||
|
border-top: solid 1px $light-gray; |
||||||
|
} |
||||||
|
|
||||||
|
h3:first-of-type { |
||||||
|
border-top: none; |
||||||
|
} |
||||||
|
} |
||||||
|
|
||||||
|
.filter-list { |
||||||
|
display: none; |
||||||
|
} |
||||||
|
|
||||||
|
&.is-active { |
||||||
|
.filter-groups { |
||||||
|
display: block; |
||||||
|
} |
||||||
|
} |
||||||
|
|
||||||
|
.is-active ul { |
||||||
|
display: block; |
||||||
|
} |
||||||
|
} |
||||||
|
|
||||||
|
.search { |
||||||
|
display: none; |
||||||
|
} |
||||||
|
|
||||||
|
.sort { |
||||||
|
border-bottom: solid 2px var(--accent, $brand-accent); |
||||||
|
|
||||||
|
.sorts { |
||||||
|
display: none; |
||||||
|
border-top: solid 2px var(--accent, $brand-accent); |
||||||
|
} |
||||||
|
|
||||||
|
&.is-active { |
||||||
|
.sorts { |
||||||
|
display: block; |
||||||
|
} |
||||||
|
} |
||||||
|
} |
||||||
|
|
||||||
|
.books { |
||||||
|
align-self: flex-start; |
||||||
|
width: percent(358, 360); |
||||||
|
margin: rem(32) 0 0 percent(10.5, 360); |
||||||
|
padding: 0; |
||||||
|
} |
||||||
|
|
||||||
|
.book { |
||||||
|
display: flex; |
||||||
|
flex-direction: column; |
||||||
|
justify-content: flex-end; |
||||||
|
width: percent(165, 358); |
||||||
|
margin: 0 percent(9, 358) rem(8) 0; |
||||||
|
height: rem(230); |
||||||
|
float: left; |
||||||
|
padding: 1.5rem rem(8) rem(26); |
||||||
|
border: solid 2px var(--bg, $brand-accent); |
||||||
|
background: var(--bg, $brand-accent); |
||||||
|
|
||||||
|
p { |
||||||
|
margin: 0; |
||||||
|
} |
||||||
|
|
||||||
|
a { |
||||||
|
font-family: $font-family-sans-serif; |
||||||
|
color: $white; |
||||||
|
text-decoration: none; |
||||||
|
} |
||||||
|
|
||||||
|
.subject { |
||||||
|
height: rem(44); |
||||||
|
font-size: rem(14); |
||||||
|
} |
||||||
|
|
||||||
|
.title { |
||||||
|
height: rem(118); |
||||||
|
font-size: rem(16); |
||||||
|
font-weight: 600; |
||||||
|
line-height: (20/16); |
||||||
|
} |
||||||
|
|
||||||
|
.read-more { |
||||||
|
font-size: rem(14); |
||||||
|
} |
||||||
|
} |
||||||
|
} |
||||||
|
|
||||||
|
@media (min-width: 768px) { |
||||||
|
.catalog { |
||||||
|
.controls { |
||||||
|
width: percent(706, 768); |
||||||
|
height: rem(52); |
||||||
|
margin: rem(60) percent(29, 768) rem(20) percent(33, 768); |
||||||
|
|
||||||
|
.filters, |
||||||
|
.search, |
||||||
|
.sort { |
||||||
|
position: relative; |
||||||
|
border-top: 0; |
||||||
|
border-bottom: solid 2px var(--accent, $brand-accent); |
||||||
|
z-index: 99; |
||||||
|
} |
||||||
|
|
||||||
|
.filters { |
||||||
|
float: left; |
||||||
|
width: rem(360); |
||||||
|
|
||||||
|
.filter-groups { |
||||||
|
border-right: solid 1px #ececec; |
||||||
|
border-left: solid 1px #ececec; |
||||||
|
} |
||||||
|
} |
||||||
|
|
||||||
|
.sort { |
||||||
|
float: right; |
||||||
|
width: rem(160); |
||||||
|
|
||||||
|
.sorts { |
||||||
|
border-right: solid 1px #ececec; |
||||||
|
border-bottom: solid 1px #ececec; |
||||||
|
border-left: solid 1px #ececec; |
||||||
|
} |
||||||
|
} |
||||||
|
} |
||||||
|
|
||||||
|
.books { |
||||||
|
align-self: flex-start; |
||||||
|
width: percent(735, 768); |
||||||
|
margin-bottom: rem(15); |
||||||
|
margin-left: percent(24, 768); |
||||||
|
} |
||||||
|
|
||||||
|
.book { |
||||||
|
width: percent(230, 735); |
||||||
|
height: rem(260); |
||||||
|
margin: 0 percent(15, 735) 2rem 0; |
||||||
|
padding: 0 rem(14) rem(21.35); |
||||||
|
|
||||||
|
.subject { |
||||||
|
height: rem(45.85); |
||||||
|
font-size: rem(18); |
||||||
|
} |
||||||
|
|
||||||
|
.title { |
||||||
|
height: rem(147.65); |
||||||
|
font-size: rem(22); |
||||||
|
font-weight: 600; |
||||||
|
line-height: (40/30); |
||||||
|
} |
||||||
|
|
||||||
|
.read-more { |
||||||
|
font-size: rem(16); |
||||||
|
} |
||||||
|
} |
||||||
|
} |
||||||
|
} |
||||||
|
|
||||||
|
@media (min-width: $medium) { |
||||||
|
// TODO |
||||||
|
} |
||||||
|
|
||||||
|
@media (min-width: $large) { |
||||||
|
// TODO |
||||||
|
} |
||||||
|
|
||||||
|
@media (min-width: $extra-large) { |
||||||
|
.catalog { |
||||||
|
.main { |
||||||
|
width: rem(1535); |
||||||
|
margin: 0 auto; |
||||||
|
} |
||||||
|
|
||||||
|
.network-catalog { |
||||||
|
margin-top: rem(205); |
||||||
|
} |
||||||
|
|
||||||
|
.controls { |
||||||
|
width: 100%; |
||||||
|
margin: 0 0 rem(64); |
||||||
|
|
||||||
|
.filters { |
||||||
|
width: rem(286); |
||||||
|
|
||||||
|
.filter-groups { |
||||||
|
border-right: 0; |
||||||
|
border-top: 0; |
||||||
|
border-left: 0; |
||||||
|
|
||||||
|
.subjects, |
||||||
|
.licenses { |
||||||
|
border-bottom: solid 1px #ececec; |
||||||
|
} |
||||||
|
} |
||||||
|
|
||||||
|
&.is-active { |
||||||
|
border-bottom: 0; |
||||||
|
|
||||||
|
.filter-groups { |
||||||
|
border-top: solid 2px var(--accent, $brand-accent); |
||||||
|
} |
||||||
|
} |
||||||
|
|
||||||
|
ul li { |
||||||
|
a { |
||||||
|
padding-top: 0; |
||||||
|
padding-bottom: 0; |
||||||
|
line-height: 2; |
||||||
|
} |
||||||
|
|
||||||
|
&:last-child a { |
||||||
|
padding-bottom: 1rem; |
||||||
|
} |
||||||
|
} |
||||||
|
} |
||||||
|
|
||||||
|
.sort { |
||||||
|
.sorts { |
||||||
|
border-top: solid 2px var(--accent, $brand-accent); |
||||||
|
border-right: 0; |
||||||
|
border-left: 0; |
||||||
|
} |
||||||
|
} |
||||||
|
} |
||||||
|
|
||||||
|
.books { |
||||||
|
width: percent(1221.5, 1535); |
||||||
|
margin: 0 0 0 percent(316, 1535); |
||||||
|
} |
||||||
|
|
||||||
|
.book { |
||||||
|
width: percent(367, 1221.5); |
||||||
|
height: rem(386); |
||||||
|
margin: 0 0 2rem percent(39.5, 1221.5); |
||||||
|
padding: 1.5rem 1.85rem 2.1875rem; |
||||||
|
|
||||||
|
.subject { |
||||||
|
height: 4.625rem; |
||||||
|
font-size: rem(24); |
||||||
|
} |
||||||
|
|
||||||
|
.title { |
||||||
|
height: 13rem; |
||||||
|
font-size: rem(30); |
||||||
|
font-weight: 500; |
||||||
|
line-height: (40/30); |
||||||
|
} |
||||||
|
|
||||||
|
.read-more { |
||||||
|
font-size: rem(18); |
||||||
|
} |
||||||
|
} |
||||||
|
} |
||||||
|
} |
@ -0,0 +1,354 @@ |
|||||||
|
.home { |
||||||
|
.block { |
||||||
|
flex-direction: column; |
||||||
|
justify-content: center; |
||||||
|
align-items: center; |
||||||
|
padding: 0 0.78125rem; |
||||||
|
display: flex; |
||||||
|
height: rem(445); |
||||||
|
background-color: $white; |
||||||
|
margin-left: auto; |
||||||
|
margin-right: auto; |
||||||
|
text-align: center; |
||||||
|
|
||||||
|
p { |
||||||
|
font-size: rem(18); |
||||||
|
line-height: (32/16); |
||||||
|
} |
||||||
|
} |
||||||
|
|
||||||
|
.blocks.blocks-2, |
||||||
|
.blocks.blocks-3 { |
||||||
|
.widget_text:nth-child(2) { |
||||||
|
margin-right: 0.5rem; |
||||||
|
margin-left: 0.5rem; |
||||||
|
border: solid 2px var(--primary, $brand-primary); |
||||||
|
box-shadow: unset; |
||||||
|
} |
||||||
|
} |
||||||
|
|
||||||
|
.blocks.blocks-4 { |
||||||
|
.widget_text:nth-child(2) { |
||||||
|
color: var(--fg, $white); |
||||||
|
background: var(--bg, $brand-accent); |
||||||
|
|
||||||
|
h3 { |
||||||
|
color: var(--fg, $white); |
||||||
|
|
||||||
|
&::before { |
||||||
|
background: var(--fg, $white); |
||||||
|
} |
||||||
|
} |
||||||
|
|
||||||
|
.button { |
||||||
|
color: var(--fg, $white); |
||||||
|
border-color: var(--fg, $white); |
||||||
|
background: transparent; |
||||||
|
|
||||||
|
&:hover, |
||||||
|
&:focus { |
||||||
|
color: var(--bg, $brand-accent); |
||||||
|
background: var(--fg, $white); |
||||||
|
} |
||||||
|
} |
||||||
|
} |
||||||
|
|
||||||
|
.widget_text:nth-child(3) { |
||||||
|
margin-top: 2rem; |
||||||
|
margin-right: 0.5rem; |
||||||
|
margin-left: 0.5rem; |
||||||
|
border: solid 2px var(--block-border, $brand-primary); |
||||||
|
box-shadow: unset; |
||||||
|
} |
||||||
|
} |
||||||
|
|
||||||
|
.blocks.blocks-2 .widget_text:nth-child(2), |
||||||
|
.blocks.blocks-3 .widget_text:nth-child(2), |
||||||
|
.blocks.blocks-4 .widget_text:nth-child(3) { |
||||||
|
background: transparent; |
||||||
|
margin-bottom: rem(400); |
||||||
|
|
||||||
|
&::after { |
||||||
|
z-index: -1; |
||||||
|
content: ""; |
||||||
|
display: block; |
||||||
|
width: 100vw; |
||||||
|
height: rem(444); |
||||||
|
background-image: url('../images/banner.jpg'); |
||||||
|
background-position: center; |
||||||
|
background-size: cover; |
||||||
|
position: absolute; |
||||||
|
top: rem(1410); |
||||||
|
left: 0; |
||||||
|
} |
||||||
|
} |
||||||
|
|
||||||
|
.blocks.blocks-4 .widget_text:nth-child(3) { |
||||||
|
&::after { |
||||||
|
top: rem(1880); |
||||||
|
} |
||||||
|
} |
||||||
|
|
||||||
|
.block, |
||||||
|
.latest-books { |
||||||
|
h3 { |
||||||
|
font-size: rem(30); |
||||||
|
font-weight: 600; |
||||||
|
color: var(--primary, $brand-primary); |
||||||
|
letter-spacing: 2px; |
||||||
|
line-height: (36/30); |
||||||
|
margin: 0; |
||||||
|
|
||||||
|
&::before { |
||||||
|
content: ""; |
||||||
|
display: block; |
||||||
|
margin: 0 auto 1em; |
||||||
|
width: 46px; |
||||||
|
height: 5px; |
||||||
|
background: var(--accent, $brand-accent); |
||||||
|
} |
||||||
|
} |
||||||
|
} |
||||||
|
|
||||||
|
.latest-books { |
||||||
|
height: auto; |
||||||
|
padding: 0 0 50px; |
||||||
|
|
||||||
|
h3 { |
||||||
|
margin-top: 4.375rem; |
||||||
|
margin-bottom: 2.8125rem; |
||||||
|
} |
||||||
|
|
||||||
|
.track { |
||||||
|
max-width: 22.9375rem; |
||||||
|
margin-left: auto; |
||||||
|
margin-right: auto; |
||||||
|
margin-bottom: 2rem; |
||||||
|
padding: 0 0.46875rem; |
||||||
|
position: relative; |
||||||
|
} |
||||||
|
|
||||||
|
.books { |
||||||
|
padding: 0; |
||||||
|
width: 100%; |
||||||
|
} |
||||||
|
|
||||||
|
.book { |
||||||
|
width: 100%; |
||||||
|
max-width: 22.9375rem; |
||||||
|
height: 24.125rem; |
||||||
|
margin: 0 0 2rem; |
||||||
|
padding: 1.5rem 1.85rem 2.1875rem; |
||||||
|
border: solid 2px var(--bg, $brand-accent); |
||||||
|
background: var(--bg, $brand-accent); |
||||||
|
|
||||||
|
a { |
||||||
|
font-family: $font-family-sans-serif; |
||||||
|
color: $white; |
||||||
|
text-decoration: none; |
||||||
|
} |
||||||
|
|
||||||
|
.subject { |
||||||
|
height: 4.625rem; |
||||||
|
font-size: rem(24); |
||||||
|
} |
||||||
|
|
||||||
|
.title { |
||||||
|
height: 13rem; |
||||||
|
font-size: rem(30); |
||||||
|
font-weight: 500; |
||||||
|
line-height: (40/30); |
||||||
|
} |
||||||
|
|
||||||
|
.read-more { |
||||||
|
font-size: rem(18); |
||||||
|
} |
||||||
|
} |
||||||
|
|
||||||
|
.previous, |
||||||
|
.next { |
||||||
|
width: auto; |
||||||
|
height: auto; |
||||||
|
|
||||||
|
svg { |
||||||
|
path { |
||||||
|
fill: var(--primary, $brand-primary); |
||||||
|
} |
||||||
|
} |
||||||
|
} |
||||||
|
} |
||||||
|
} |
||||||
|
|
||||||
|
@media (min-width: $medium) { |
||||||
|
.home { |
||||||
|
.wrap { |
||||||
|
margin-top: rem(-366); |
||||||
|
} |
||||||
|
|
||||||
|
.block { |
||||||
|
width: rem(775); |
||||||
|
height: rem(494); |
||||||
|
margin-bottom: rem(119); |
||||||
|
padding: 0 90px; |
||||||
|
box-shadow: -3px 5px 4px 2px rgba(135, 135, 135, 0.09); |
||||||
|
|
||||||
|
&:last-child { |
||||||
|
margin-bottom: 4.0625rem; |
||||||
|
} |
||||||
|
|
||||||
|
h3 { |
||||||
|
font-size: rem(48); |
||||||
|
line-height: (56/48); |
||||||
|
|
||||||
|
&::before { |
||||||
|
width: 74px; |
||||||
|
} |
||||||
|
} |
||||||
|
|
||||||
|
p { |
||||||
|
font-size: rem(18); |
||||||
|
line-height: (32/18); |
||||||
|
} |
||||||
|
} |
||||||
|
|
||||||
|
.blocks.blocks-2 .widget_text:nth-child(2), |
||||||
|
.blocks.blocks-3 .widget_text:nth-child(2), |
||||||
|
.blocks.blocks-4 .widget_text:nth-child(3) { |
||||||
|
margin-left: auto; |
||||||
|
margin-right: auto; |
||||||
|
} |
||||||
|
|
||||||
|
.blocks.blocks-2 .widget_text:nth-child(2), |
||||||
|
.blocks.blocks-3 .widget_text:nth-child(2), |
||||||
|
.blocks.blocks-4 .widget_text:nth-child(3) { |
||||||
|
margin-bottom: rem(119); |
||||||
|
|
||||||
|
&::after { |
||||||
|
height: rem(600); |
||||||
|
top: rem(1547); |
||||||
|
} |
||||||
|
} |
||||||
|
|
||||||
|
.blocks.blocks-4 .widget_text:nth-child(3) { |
||||||
|
&::after { |
||||||
|
top: rem(2177); |
||||||
|
} |
||||||
|
} |
||||||
|
|
||||||
|
.latest-books { |
||||||
|
width: 100%; |
||||||
|
margin-left: auto; |
||||||
|
margin-right: auto; |
||||||
|
|
||||||
|
h3 { |
||||||
|
margin-bottom: 4.375rem; |
||||||
|
} |
||||||
|
|
||||||
|
.track { |
||||||
|
flex-wrap: nowrap; |
||||||
|
width: 100%; |
||||||
|
max-width: 100%; |
||||||
|
margin: 0; |
||||||
|
padding: 0; |
||||||
|
} |
||||||
|
|
||||||
|
.next, |
||||||
|
.previous { |
||||||
|
position: absolute; |
||||||
|
top: rem(165.5); |
||||||
|
|
||||||
|
svg { |
||||||
|
width: 2.4375rem; |
||||||
|
height: 1.875rem; |
||||||
|
} |
||||||
|
} |
||||||
|
|
||||||
|
.next { |
||||||
|
margin-right: 0.9375rem; |
||||||
|
right: 0; |
||||||
|
} |
||||||
|
|
||||||
|
.previous { |
||||||
|
margin-left: 0.9375rem; |
||||||
|
left: 0; |
||||||
|
} |
||||||
|
|
||||||
|
.books { |
||||||
|
width: auto; |
||||||
|
min-width: 50rem; |
||||||
|
flex-direction: row; |
||||||
|
justify-content: space-between; |
||||||
|
} |
||||||
|
|
||||||
|
.book { |
||||||
|
width: 30%; |
||||||
|
max-width: 19.54rem; |
||||||
|
} |
||||||
|
} |
||||||
|
} |
||||||
|
} |
||||||
|
|
||||||
|
@media (min-width: $large) { |
||||||
|
.home { |
||||||
|
.block { |
||||||
|
width: rem(1115); |
||||||
|
} |
||||||
|
|
||||||
|
.latest-books { |
||||||
|
width: 100%; |
||||||
|
margin-bottom: 0; |
||||||
|
|
||||||
|
.track { |
||||||
|
width: 100%; |
||||||
|
margin: 0 auto; |
||||||
|
max-width: 87rem; |
||||||
|
} |
||||||
|
|
||||||
|
.books { |
||||||
|
width: 100%; |
||||||
|
max-width: 75rem; |
||||||
|
} |
||||||
|
|
||||||
|
.book { |
||||||
|
min-width: 19.54rem; |
||||||
|
max-width: 22.9375rem; |
||||||
|
} |
||||||
|
} |
||||||
|
} |
||||||
|
} |
||||||
|
|
||||||
|
@media (min-width: $extra-large) { |
||||||
|
.home { |
||||||
|
.block { |
||||||
|
width: 1115px; |
||||||
|
box-shadow: -3px 5px 4px 2px rgba(135, 135, 135, 0.09); |
||||||
|
} |
||||||
|
|
||||||
|
.blocks.blocks-4 { |
||||||
|
display: flex; |
||||||
|
flex-flow: row wrap; |
||||||
|
width: 1615px; |
||||||
|
|
||||||
|
.widget_text { |
||||||
|
width: 1115px; |
||||||
|
margin-right: auto; |
||||||
|
margin-left: auto; |
||||||
|
} |
||||||
|
|
||||||
|
.widget_text:nth-child(1), |
||||||
|
.widget_text:nth-child(2) { |
||||||
|
width: 775px; |
||||||
|
} |
||||||
|
|
||||||
|
.widget_text:nth-child(1) { |
||||||
|
margin-right: 65px; |
||||||
|
} |
||||||
|
} |
||||||
|
|
||||||
|
.blocks.blocks-4 .widget_text:nth-child(3) { |
||||||
|
&::after { |
||||||
|
top: rem(1596); |
||||||
|
} |
||||||
|
} |
||||||
|
} |
||||||
|
} |
@ -0,0 +1,50 @@ |
|||||||
|
@extends('layouts.app') |
||||||
|
|
||||||
|
@section('content') |
||||||
|
@include('partials.page-header') |
||||||
|
<section class="network-catalog"> |
||||||
|
<div class="controls"> |
||||||
|
<div class="search"> |
||||||
|
<h2><a href="#search">{{ __('Search by titles or keyword', 'aldine') }} <svg class="arrow" width="13" height="8" viewBox="0 0 13 8" xmlns="http://www.w3.org/2000/svg"><path d="M6.255 8L0 0h12.51z" fill="#b01109" fill-rule="evenodd"/></svg></a></h2> |
||||||
|
</div> |
||||||
|
<div class="filters"> |
||||||
|
<a href="#filter">{{ __('Filter by', 'aldine') }} <svg class="arrow" width="13" height="8" viewBox="0 0 13 8" xmlns="http://www.w3.org/2000/svg"><path d="M6.255 8L0 0h12.51z" fill="#b01109" fill-rule="evenodd"/></svg></a> |
||||||
|
<div id="filter" class="filter-groups"> |
||||||
|
@foreach($subject_groups as $key => $val) |
||||||
|
<div class="{{ $key }} subjects" id="{{ $key }}"> |
||||||
|
<a href="#{{ $key }}">{{ $val['title'] }} <svg class="arrow" width="13" height="8" viewBox="0 0 13 8" xmlns="http://www.w3.org/2000/svg"><path d="M6.255 8L0 0h12.51z" fill="#b01109" fill-rule="evenodd"/></svg></a> |
||||||
|
<ul class="filter-list"> |
||||||
|
@foreach($val['subjects'] as $k => $v) |
||||||
|
<li><a data-filter="{{ $k }}">{{ $v }}<span class="close">×</span></a></li> |
||||||
|
@endforeach |
||||||
|
</ul> |
||||||
|
</div> |
||||||
|
@endforeach |
||||||
|
<div class="licenses" id="licenses"> |
||||||
|
<a href="#licenses">{{ __('Licenses', 'aldine' ) }}<svg class="arrow" width="13" height="8" viewBox="0 0 13 8" xmlns="http://www.w3.org/2000/svg"><path d="M6.255 8L0 0h12.51z" fill="#b01109" fill-rule="evenodd"/></svg></a> |
||||||
|
<ul class="filter-list"> |
||||||
|
@foreach($licenses as $key => $value) |
||||||
|
<li><a data-filter="{{ $key }}">{{ $value }}<span class="close">×</span></a></li> |
||||||
|
@endforeach |
||||||
|
</ul> |
||||||
|
</div> |
||||||
|
</div> |
||||||
|
</div> |
||||||
|
<div class="sort"> |
||||||
|
<a href="#sort">{{ __('Sort by', 'aldine') }} <svg class="arrow" width="13" height="8" viewBox="0 0 13 8" xmlns="http://www.w3.org/2000/svg"><path d="M6.255 8L0 0h12.51z" fill="#b01109" fill-rule="evenodd"/></svg></a> |
||||||
|
<ul id="sort" class="sorts"> |
||||||
|
<li><a class="is-active" href="#title">{{ __('Title', 'aldine') }}</a></li> |
||||||
|
<li><a href="#subject">{{ __('Subject', 'aldine') }}</a></li> |
||||||
|
<li><a href="#latest">{{ __('Latest', 'aldine') }}</a></li> |
||||||
|
</ul> |
||||||
|
</div> |
||||||
|
</div> |
||||||
|
<div class="books"> |
||||||
|
@foreach(App::books(1, 9) as $book) |
||||||
|
@include('partials.book', ['book' => $book]) |
||||||
|
@endforeach |
||||||
|
</div> |
||||||
|
<nav class="catalog-navigation"> |
||||||
|
</nav> |
||||||
|
</section> |
||||||
|
@endsection |
@ -0,0 +1,17 @@ |
|||||||
|
<div class="book" |
||||||
|
data-date-published="{{ @$book['metadata']['datePublished'] }}" |
||||||
|
data-license="{{ (new \Pressbooks\Licensing())->getLicenseFromUrl($book['metadata']['license']) }}" |
||||||
|
data-subject="{{ sanitize_title(@$book['metadata']['keywords']) }}" |
||||||
|
> |
||||||
|
@if(isset($book['metadata']['keywords'])) |
||||||
|
<p class="subject"> |
||||||
|
<a href="{{ network_home_url('/catalog/#') . $book['metadata']['keywords'] }}">{{ $book['metadata']['keywords'] }}</a> |
||||||
|
</p> |
||||||
|
@endif |
||||||
|
<p class="title"> |
||||||
|
<a href="{{ $book['link'] }}">{{ $book['metadata']['name'] }}</a> |
||||||
|
</p> |
||||||
|
<p class="read-more"> |
||||||
|
<a href="{{ $book['link'] }}">{{ __('About this book →', 'aldine') }}</a> |
||||||
|
</p> |
||||||
|
</div> |
Loading…
Reference in new issue