diff --git a/.gitignore b/.gitignore index e856da4..5dad9e5 100644 --- a/.gitignore +++ b/.gitignore @@ -22,3 +22,5 @@ conf/pillar/*/deploy .env *.cert* *.key* +node_modules +frontend/css/style.css diff --git a/docs/dev-setup.rst b/docs/dev-setup.rst index 485ad7d..7c9e5f9 100644 --- a/docs/dev-setup.rst +++ b/docs/dev-setup.rst @@ -52,6 +52,36 @@ Next run a basic HTTP server with Python: Now visit http://localhost:8000/ in your browser. +SASS & GULP (modifying styles on frontend) +------------- + +Verify you have Ruby installed on your machine. +If the following command gives you an error, then install ruby. + + `ruby -v` + __installing:__ for OSX users with homebrew run `brew install ruby` for Ubuntu run `sudo apt-get install ruby-full` + or you can install ruby by installing Xcode commnand line tools: + `xcode-select --install` + +Verify you have Node.js installed on your machine. +If the following command gives you an error, then install node. + + `node -v` + __installing:__ download Node.js @ [https://nodejs.org/en/download/](https://nodejs.org/en/download/) + +Install SASS with: + + `gem install sass` + if you receive a permissions error, then type `sudo gem install sass` which requires your system password + +Run the SASS compiler by typing: + + `npm run watch:css` + +This command "watches" the frontend/sass/style.css file for any changes. +And when the file is saved, adds those changes to frontend/css/style.css + + .. _backend-setup: diff --git a/frontend/css/style.css b/frontend/css/style.css new file mode 100644 index 0000000..4f70fe4 --- /dev/null +++ b/frontend/css/style.css @@ -0,0 +1,547 @@ +html { + height: 100%; } + +body { + height: 100%; + margin: 0; + position: relative; + font-family: 'Roboto', sans-serif; } + +img { + max-width: 100%; } + +hr.no-border { + border: none; + margin-top: 10px; + margin-bottom: 10px; } + +.title-case { + text-transform: capitalize; } + +#app_content { + height: 100%; + display: flex; + flex-flow: column; } + +.container { + margin-top: 60px; } + +.content-row { + flex: 0 1 50px; } + .content-row#simple-nav { + flex: 0 1 auto; } + .content-row#leaflet-map { + flex: 1 1 auto; } + +#logo h1 { + display: inline; + position: relative; + top: 10px; + left: 5px; + font-size: 20px; } + +#logo #icon { + width: 26px; + margin-top: 12px; } + +#main-menu { + position: absolute; + z-index: 1000000; + top: 20px; + right: 40px; + background: white; + padding: 0 10px; } + #main-menu .nav-pills > li > a { + border-radius: 0; } + #main-menu .nav-pills > li.active > a { + background-color: white; + font-weight: bold; + color: #000; } + +#search-form { + position: absolute; + z-index: 1000000; + top: 90px; + left: 40px; + width: 480px; } + #search-form button { + padding: 10px 24px; + font-size: 16px; + margin-left: 2px; } + +#search-box { + width: 375px; + height: 44px; + font-size: 18px; } + +#schools-wrapper { + position: absolute; + z-index: 1000000; + top: 165px; + left: 40px; + width: 480px; + background: white; + max-height: 800px; + height: 400px; } + +#my-schools { + background: white; + overflow-y: auto; } + #my-schools h3 { + color: #fff; + padding: 10px 15px; + margin: 0px; + text-transform: capitalize; } + #my-schools h3.elementary { + background-color: #48BC6B; } + #my-schools h3.middle, #my-schools h3.secondary { + background-color: #3F899E; } + #my-schools h3.high { + background-color: #4F61AD; } + +.borderless { + border: 0; } + +.school-group .school-group-item { + background-color: transparent; + overflow: hidden; + border: 0; + border-radius: 0; + padding: 0 16px; + position: relative; } + .school-group .school-group-item:hover { + cursor: pointer; } + .school-group .school-group-item .distance { + position: absolute; + font-size: 11px; + right: 16px; + top: 18px; + color: #666; } + .school-group .school-group-item img.photo { + text-align: center; } + +.school-group.elementary .school-group-item.hover { + background-color: #9FE7B5; } + +.school-group.middle .school-group-item.hover, .school-group.secondary .school-group-item.hover { + background-color: #9ACDDC; } + +.school-group.high .school-group-item.hover { + background-color: #A4B0E2; } + +.school-group.elementary .school-group-item.active { + background-color: #9FE7B5; } + +.school-group.middle .school-group-item.active, .school-group.secondary .school-group-item.active { + background-color: #9ACDDC; } + +.school-group.high .school-group-item.active { + background-color: #A4B0E2; } + +/* http://paletton.com/#uid=53o0u0kjPvU9VPsfmFjnPsIrNn+ */ +.school-group-item.detail:hover { + background: white !important; } + +.school-group .school-group-item .school-group-item-heading { + margin: 15px 0; + vertical-align: middle; + width: 380px; } + .school-group .school-group-item .school-group-item-heading .legends { + border-radius: 50%; + padding: 5px; + font-size: 10px; + width: 48px; + height: 48px; + display: block; + float: left; + margin-top: -10px; + margin-right: 10px; } + .school-group .school-group-item .school-group-item-heading .legends span { + margin: -5px auto auto auto; + display: block; } + .school-group .school-group-item .school-group-item-heading h4 { + display: inline; + font-size: 20px; + line-height: 29px; } + +.school-group .school-group-separator { + content: ""; + width: 100%; + border-bottom: 1px solid rgba(0, 0, 0, 0.1); + float: right; } + +.school-group .school-group-item.last .school-group-separator { + border-bottom: none; } + +.compare-schools button { + margin-right: 5px; } + +#map { + width: 800px; + height: 400px; } + #map .fa-home { + color: #181818; } + +.legend { + padding: 6px 8px; + font: 1.5em Arial, Helvetica, sans-serif; + box-shadow: 0 0 15px rgba(0, 0, 0, 0.2); + background: rgba(255, 255, 255, 0.9); + line-height: 2em; + border-radius: 5px; + color: #555; + margin-top: 56px !important; + width: 205px !important; } + .legend i { + color: #777; + width: 1.5em; + height: 1.5em; + float: left; + margin-right: 8px; + opacity: 0.7; } + +.leaflet-left { + right: 20px !important; } + +.leaflet-top { + bottom: 30px !important; } + +.school_point { + border-radius: 50%; + width: 50px; + height: 50px; + background: #ff8888; + text-align: center; + line-height: 40px; + border: 5px solid rgba(255, 255, 255, 0.5); + color: white; } + .school_point.elementary { + background: #48BC6B; } + .school_point.middle, .school_point.secondary { + background: #3F899E; } + .school_point.high { + background: #4F61AD; } + +.school-badge { + padding: 2px; + font-weight: bold; + font-size: 10px; } + .school-badge.magnet { + background-color: #FFAE8B; + border: 2px solid rgba(255, 255, 255, 0.5); } + .school-badge.year-round { + background-color: #EF83A2; + border: 2px solid rgba(255, 255, 255, 0.5); } + +div#schools-wrapper ul.nav li a { + color: #333; + background-color: #EFEFEF; + border-bottom: none; + border-radius: 0; + border-color: #EFEFEF; + font-size: 16px; + cursor: pointer; } + +div#schools-wrapper ul.nav li:last-child a { + border-left: none; } + +div#schools-wrapper ul.nav li.active a, div#schools-wrapper ul.nav li a:hover { + font-weight: bold; + background-color: #FFFFFF; + border-color: #FFFFFF; + color: #000; } + +.detail .distance { + position: absolute; + font-size: 11px; + right: 10px; + top: 10px; + color: #666; } + +.detail .close { + z-index: 1000; } + .detail .close:after { + content: "X"; } + +.navbar { + margin-bottom: 0; } + +.preference { + font-weight: bold; } + +.tooltip { + font-size: 1.1em; + width: 200px; } + +@media only screen and (max-width: 740px) { + /* Styles */ + /*#leaflet-map, + .tooltip { + display: none !important; + }*/ + /*.tooltip{ + display: none !important; + }*/ + .content-row#simple-nav { + flex: 4 1 auto; + overflow-y: visible; } + #leaflet-map { + width: 100%; + height: 600px; } + a#us_report_button { + bottom: 0 !important; } + #logo h1 { + font-size: 16px; + left: 0; } + #search-form { + top: 55px; + left: 10px; + width: 100%; + z-index: 0; } + #search-box { + width: 65%; + float: left; } + #schools-wrapper { + position: static; + z-index: 0; + top: 150px; + left: 10px; + width: 95%; + background: white; } + div#schools-wrapper ul.nav li a { + font-size: 14px; } + .nav-tabs.nav-justified > li { + float: left; } + .school-group .school-group-item .school-group-item-heading { + width: auto; } + .school_point { + display: none !important; } + .school-group .school-group-item .school-group-item-heading h4 { + font-size: 16px; + word-wrap: break-word; } + .school-group .school-group-item .distance { + top: 5px; } + #my-schools { + overflow-y: visible; } + /*.content-row#simple-nav {*/ + /*}*/ } + +/*SCHOOL DETAIL PAGE*/ +.at-a-glance { + padding: 20px 0; } + +.school-detail-page { + margin-bottom: 40px; } + .school-detail-page ol { + padding-left: 20px; } + .school-detail-page ul { + list-style: none; + padding-left: 0; } + .school-detail-page ul li { + padding-bottom: 10px; } + +div.avgline { + border-radius: 5px; + height: 15px; + width: 100%; + position: relative; + box-shadow: inset 0px 0px 3px 0px rgba(0, 0, 0, 0.09); + margin-bottom: 10px; + border: 1px solid #ebebeb; } + div.avgline span.actual { + background-color: #40d088; + border-radius: 5px; + height: 15px; + display: block; } + div.avgline span.avg { + display: block; + width: 150px; + font-size: 10px; + line-height: 10px; + margin-left: -75px; + left: 0%; + top: 10px; + color: black; + text-align: center; + position: absolute; } + +.metrics { + margin-top: 40px; } + +.metric { + margin-bottom: 60px; } + .metric .score { + font-size: 24px; + float: right; } + +.map-row { + min-height: 155px; } + .map-row textarea { + width: 100%; + height: 80px; } + .map-row .angular-leaflet-map { + margin-top: 20px; } + +.overlay { + display: none; } + +.coming-soon .overlay { + opacity: 1; + display: block; + position: absolute; + left: 0; + right: 0; + bottom: 0; + top: 0; + background: rgba(255, 255, 255, 0.8); + z-index: 999; + overflow: hidden; } + .coming-soon .overlay span.label { + display: inline-block; + position: absolute; + transform: rotate(35deg); + text-align: center; + padding: 5px 10px; + right: -10px; + top: 30px; + color: white; + font-weight: bold; + font-size: 22px; } + .coming-soon .overlay div.text { + position: relative; + top: 50%; + transform: translateY(-50%); + text-align: center; + font-size: 46px; + font-weight: bold; } + +.coming-soon.teacher-survey .overlay { + height: 458px; } + .coming-soon.teacher-survey .overlay .opacity { + opacity: 0.7; } + +/* NEW PROTOTYPE STYLES */ +/* ======================== +Once the new school profile page is implemented, +the follwoing styles will have to be refactored to remove .new-prototype class +and integrated with other styles above +=========================== */ +.new-prototype.school-detail-page { + margin-bottom: 60px; } + +.new-prototype .container { + margin-top: 0; + position: relative; } + +.new-prototype .container-fluid { + position: relative; } + +.new-prototype .hero { + height: 500px; + /*background-image: url(../img/mural.jpg);*/ + opacity: 0.25; } + +.new-prototype .school-profile-header { + margin-top: -390px; } + .new-prototype .school-profile-header.middle-school { + color: #3F899E; } + +.new-prototype .at-a-glance { + padding: 40px; + color: #ffffff; + font-size: 16px; + background-color: rgba(63, 137, 158, 0.8); } + .new-prototype .at-a-glance a { + color: #ffffff; + text-decoration: underline; } + .new-prototype .at-a-glance a:hover { + text-decoration: none; } + +.at-a-glance a:focus { + text-decoration: none; } + +.new-prototype .at-a-glance p:last-child { + margin-bottom: 0; } + +.new-prototype .at-a-glance .label { + color: #C1D2DB; + font-weight: 400; + font-size: 16px; + padding: 0; + padding-right: 6px; } + .new-prototype .at-a-glance .label.after-care { + padding-left: 10px; } + +.new-prototype .at-a-glance .col-md-6 { + border-left: 1px solid #AAC2CE; } + +.new-prototype .at-a-glance strong { + color: #C1D2DB; } + +.new-prototype nav.school-profile-tabs { + background-color: #ffffff; + border-top: 1px solid #3F899E; + border-bottom: 1px solid #3F899E; } + +.new-prototype.school-detail-page .school-profile-tabs ul li { + text-align: center; + text-transform: uppercase; + width: 25%; + padding-bottom: 0; } + +.new-prototype.school-detail-page .nav-pills > li + li { + margin: 0; } + +.school-profile-tabs .nav-pills > li.active > a, .school-profile-tabs .nav-pills > li > a:hover { + border-radius: 0; + cursor: pointer; } + +.new-prototype .school-profile-tabs .nav-pills > li.active::after { + content: ""; + position: absolute; + left: 50%; + -webkit-transform: translateX(-50%); + -ms-transform: translateX(-50%); + transform: translateX(-50%); + border-width: 15px 15px 0; + border-style: solid; + border-color: #3F899E transparent; + display: block; + width: 0; } + +.new-prototype .middle-school-tabs-nav .nav-pills > li > a { + color: #3F899E; } + +.new-prototype .middle-school-tabs-nav .nav-pills > li.active > a { + background-color: #3F899E; + color: #ffffff; } + +.new-prototype .school-profile-content { + margin-top: 40px; } + .new-prototype .school-profile-content .row { + display: none; } + .new-prototype .school-profile-content .active { + display: block; } + +.new-prototype .force-line-break { + /* These are technically the same, but use both */ + overflow-wrap: break-word; + word-wrap: break-word; + -ms-word-break: break-all; + /* This is the dangerous one in WebKit, as it breaks things wherever */ + word-break: break-all; + /* Instead use this non-standard one: */ + word-break: break-word; + /* Adds a hyphen where the word breaks, if supported */ + -ms-hyphens: auto; + -moz-hyphens: auto; + -webkit-hyphens: auto; + hyphens: auto; } + +@media screen and (max-width: 768px) { + .new-prototype .at-a-glance .col-md-6 { + border-left: 0; } + .new-prototype .at-a-glance .col-md-6:last-child { + margin-top: 10px; } + .new-prototype .at-a-glance .label.after-care { + padding-left: 0; } } diff --git a/frontend/sass/style.scss b/frontend/sass/style.scss new file mode 100644 index 0000000..840a79f --- /dev/null +++ b/frontend/sass/style.scss @@ -0,0 +1,688 @@ +html { + height: 100%; +} + +body { + height: 100%; + margin: 0; + position: relative; + font-family: 'Roboto', sans-serif; +} + +img { + max-width: 100%; +} + +hr.no-border { + border: none; + margin-top: 10px; + margin-bottom: 10px; +} + +.title-case { + text-transform: capitalize; +} + + +#app_content { + height: 100%; + display: flex; + flex-flow: column; +} + +.container { + margin-top: 60px; +} + +.content-row { + flex: 0 1 50px; + &#simple-nav { + flex: 0 1 auto; + } + &#leaflet-map { + flex: 1 1 auto; + } +} + +#logo { + h1 { + display: inline; + position: relative; + top: 10px; + left: 5px; + font-size: 20px; + } + #icon { + width: 26px; + margin-top: 12px; + } +} + +#main-menu { + position: absolute; + z-index: 1000000; + top: 20px; + right: 40px; + background: white; + padding: 0 10px; + .nav-pills > li { + > a { + border-radius: 0; + } + &.active > a { + background-color: white; + font-weight: bold; + color: #000; + } + } +} + +#search-form { + position: absolute; + z-index: 1000000; + top: 90px; + left: 40px; + width: 480px; + button { + padding: 10px 24px; + font-size: 16px; + margin-left: 2px; + } +} + +#search-box { + width: 375px; + height: 44px; + font-size: 18px; +} + +#schools-wrapper { + position: absolute; + z-index: 1000000; + top: 165px; + left: 40px; + width: 480px; + background: white; + max-height: 800px; + height: 400px; +} + +#my-schools { + background: white; + overflow-y: auto; + h3 { + color: #fff; + padding: 10px 15px; + margin: 0px; + text-transform: capitalize; + &.elementary { + background-color: #48BC6B; + } + &.middle, &.secondary { + background-color: #3F899E; + } + &.high { + background-color: #4F61AD; + } + } +} + +.borderless { + border: 0; +} + +.school-group { + .school-group-item { + background-color: transparent; + overflow: hidden; + border: 0; + border-radius: 0; + padding: 0 16px; + position: relative; + &:hover { + cursor: pointer; + } + .distance { + position: absolute; + font-size: 11px; + right: 16px; + top: 18px; + color: #666; + } + img.photo { + text-align: center; + } + } + &.elementary .school-group-item.hover { + background-color: #9FE7B5; + } + &.middle .school-group-item.hover, &.secondary .school-group-item.hover { + background-color: #9ACDDC; + } + &.high .school-group-item.hover { + background-color: #A4B0E2; + } + &.elementary .school-group-item.active { + background-color: #9FE7B5; + } + &.middle .school-group-item.active, &.secondary .school-group-item.active { + background-color: #9ACDDC; + } + &.high .school-group-item.active { + background-color: #A4B0E2; + } +} + +/* http://paletton.com/#uid=53o0u0kjPvU9VPsfmFjnPsIrNn+ */ + +.school-group-item.detail:hover { + background: white !important; +} + +.school-group { + .school-group-item .school-group-item-heading { + margin: 15px 0; + vertical-align: middle; + width: 380px; + .legends { + border-radius: 50%; + padding: 5px; + font-size: 10px; + width: 48px; + height: 48px; + display: block; + float: left; + margin-top: -10px; + margin-right: 10px; + span { + margin: -5px auto auto auto; + display: block; + } + } + h4 { + display: inline; + font-size: 20px; + line-height: 29px; + } + } + .school-group-separator { + content: ""; + width: 100%; + border-bottom: 1px solid rgba(0, 0, 0, 0.1); + float: right; + } + .school-group-item.last .school-group-separator { + border-bottom: none; + } +} + +.compare-schools button { + margin-right: 5px; +} + +#map { + width: 800px; + height: 400px; + .fa-home { + color: rgb(24, 24, 24); + } +} + +.legend { + padding: 6px 8px; + font: 1.5em Arial, Helvetica, sans-serif; + box-shadow: 0 0 15px rgba(0, 0, 0, 0.2); + background: rgba(255, 255, 255, 0.9); + line-height: 2em; + border-radius: 5px; + color: #555; + margin-top: 56px !important; + width: 205px !important; + i { + color: #777; + width: 1.5em; + height: 1.5em; + float: left; + margin-right: 8px; + opacity: 0.7; + } +} + +.leaflet-left { + right: 20px !important; +} + +.leaflet-top { + bottom: 30px !important; +} + +.school_point { + border-radius: 50%; + width: 50px; + height: 50px; + background: #ff8888; + text-align: center; + line-height: 40px; + border: 5px solid rgba(255, 255, 255, 0.5); + color: white; + &.elementary { + background: #48BC6B; + } + &.middle, &.secondary { + background: #3F899E; + } + &.high { + background: #4F61AD; + } + &.magnet, &.year-round {} +} + +.school-badge { + padding: 2px; + font-weight: bold; + font-size: 10px; + &.magnet { + background-color: #FFAE8B; + border: 2px solid rgba(255, 255, 255, 0.5); + } + &.year-round { + background-color: #EF83A2; + border: 2px solid rgba(255, 255, 255, 0.5); + } +} + +div#schools-wrapper ul.nav li { + a { + color: #333; + background-color: #EFEFEF; + border-bottom: none; + border-radius: 0; + border-color: #EFEFEF; + font-size: 16px; + cursor: pointer; + } + &:last-child a { + border-left: none; + } + &.active a, a:hover { + font-weight: bold; + background-color: #FFFFFF; + border-color: #FFFFFF; + color: #000; + } +} + +.detail { + .distance { + position: absolute; + font-size: 11px; + right: 10px; + top: 10px; + color: #666; + } + .close { + z-index: 1000; + &:after { + content: "X"; + } + } +} + +.navbar { + margin-bottom: 0; +} + +.preference { + font-weight: bold; +} + +.tooltip { + font-size: 1.1em; + width: 200px; +} + +@media only screen and (max-width: 740px) { + /* Styles */ + /*#leaflet-map, + .tooltip { + display: none !important; + }*/ + /*.tooltip{ + display: none !important; + }*/ + .content-row#simple-nav { + flex: 4 1 auto; + overflow-y: visible; + } + #leaflet-map { + width: 100%; + height: 600px; + } + a#us_report_button { + bottom: 0 !important; + } + #logo h1 { + font-size: 16px; + left: 0; + } + #search-form { + top: 55px; + left: 10px; + width: 100%; + z-index: 0; + } + #search-box { + width: 65%; + float: left; + } + #schools-wrapper { + position: static; + z-index: 0; + top: 150px; + left: 10px; + width: 95%; + background: rgb(255, 255, 255); + } + div#schools-wrapper ul.nav li a { + font-size: 14px; + } + .nav-tabs.nav-justified > li { + float: left; + } + .school-group .school-group-item .school-group-item-heading { + width: auto; + } + .school_point { + display: none !important; + } + .school-group .school-group-item { + .school-group-item-heading h4 { + font-size: 16px; + word-wrap: break-word; + } + .distance { + top: 5px; + } + } + #my-schools { + overflow-y: visible; + } + /*.content-row#simple-nav {*/ + /*}*/ +} + +/*SCHOOL DETAIL PAGE*/ + +.at-a-glance { + padding: 20px 0; +} + +.school-detail-page { + ol { + padding-left: 20px; + } + ul { + list-style: none; + padding-left: 0; + li { + padding-bottom: 10px; + } + } + margin-bottom: 40px; +} + +div.avgline { + span { + &.actual { + background-color: rgb(64, 208, 136); + border-radius: 5px; + height: 15px; + display: block; + } + &.avg { + display: block; + width: 150px; + font-size: 10px; + line-height: 10px; + margin-left: -75px; + left: 0%; + top: 10px; + color: rgb(0, 0, 0); + text-align: center; + position: absolute; + } + } + border-radius: 5px; + height: 15px; + width: 100%; + position: relative; + box-shadow: inset 0px 0px 3px 0px rgba(0, 0, 0, 0.09); + margin-bottom: 10px; + border: 1px solid rgb(235, 235, 235); +} + +.metrics { + margin-top: 40px; +} + +.metric { + margin-bottom: 60px; + .score { + font-size: 24px; + float: right; + } +} + +.map-row { + min-height: 155px; + textarea { + width: 100%; + height: 80px; + } + .angular-leaflet-map { + margin-top: 20px; + } +} + +.overlay { + display: none; +} + +.coming-soon { + .overlay { + opacity: 1; + display: block; + position: absolute; + left: 0; + right: 0; + bottom: 0; + top: 0; + background: rgba(255, 255, 255, 0.8); + z-index: 999; + overflow: hidden; + span.label { + display: inline-block; + position: absolute; + transform: rotate(35deg); + text-align: center; + padding: 5px 10px; + right: -10px; + top: 30px; + color: white; + font-weight: bold; + font-size: 22px; + } + div.text { + position: relative; + top: 50%; + transform: translateY(-50%); + text-align: center; + font-size: 46px; + font-weight: bold; + } + } + &.teacher-survey .overlay { + height: 458px; + .opacity { + opacity: 0.7; + } + } +} + +/* NEW PROTOTYPE STYLES */ +/* ======================== +Once the new school profile page is implemented, +the follwoing styles will have to be refactored to remove .new-prototype class +and integrated with other styles above +=========================== */ + +.new-prototype { + &.school-detail-page { + margin-bottom: 60px; + } + .container { + margin-top: 0; + position: relative; + } + .container-fluid { + position: relative; + } + .hero { + height: 500px; + /*background-image: url(../img/mural.jpg);*/ + opacity: 0.25; + } + .school-profile-header { + margin-top: -390px; + &.middle-school { + color: #3F899E; + } + } + .at-a-glance { + padding: 40px; + color: #ffffff; + font-size: 16px; + background-color: rgba(63, 137, 158, 0.8); + a { + color: #ffffff; + text-decoration: underline; + &:hover { + text-decoration: none; + } + } + } +} + +.at-a-glance a:focus { + text-decoration: none; +} + +.new-prototype { + .at-a-glance { + p:last-child { + margin-bottom: 0; + } + .label { + color: #C1D2DB; + font-weight: 400; + font-size: 16px; + padding: 0; + padding-right: 6px; + &.after-care { + padding-left: 10px; + } + } + .col-md-6 { + border-left: 1px solid #AAC2CE; + } + strong { + color: #C1D2DB; + } + } + nav.school-profile-tabs { + background-color: #ffffff; + border-top: 1px solid #3F899E; + border-bottom: 1px solid #3F899E; + } + &.school-detail-page { + .school-profile-tabs ul li { + text-align: center; + text-transform: uppercase; + width: 25%; + padding-bottom: 0; + } + .nav-pills > li + li { + margin: 0; + } + } +} + +.school-profile-tabs .nav-pills > li { + &.active > a, > a:hover { + border-radius: 0; + cursor: pointer; + } +} + +.new-prototype { + .school-profile-tabs .nav-pills > li.active::after { + content: ""; + position: absolute; + left: 50%; + -webkit-transform: translateX(-50%); + -ms-transform: translateX(-50%); + transform: translateX(-50%); + border-width: 15px 15px 0; + border-style: solid; + border-color: #3F899E transparent; + display: block; + width: 0; + } + .middle-school-tabs-nav .nav-pills > li { + > a { + color: #3F899E; + } + &.active > a { + background-color: #3F899E; + color: #ffffff; + } + } + .school-profile-content { + margin-top: 40px; + .row { + display: none; + } + .active { + display: block; + } + } + .force-line-break { + /* These are technically the same, but use both */ + overflow-wrap: break-word; + word-wrap: break-word; + -ms-word-break: break-all; + /* This is the dangerous one in WebKit, as it breaks things wherever */ + word-break: break-all; + /* Instead use this non-standard one: */ + word-break: break-word; + /* Adds a hyphen where the word breaks, if supported */ + -ms-hyphens: auto; + -moz-hyphens: auto; + -webkit-hyphens: auto; + hyphens: auto; + } +} + +@media screen and (max-width: 768px) { + .new-prototype .at-a-glance { + .col-md-6 { + border-left: 0; + &:last-child { + margin-top: 10px; + } + } + .label.after-care { + padding-left: 0; + } + } +} diff --git a/gulpfile.js b/gulpfile.js new file mode 100644 index 0000000..f62373e --- /dev/null +++ b/gulpfile.js @@ -0,0 +1,14 @@ +'use strict'; + +var gulp = require('gulp'); +var sass = require('gulp-sass'); + +gulp.task('sass', function () { + return gulp.src('./frontend/sass/*.scss') + .pipe(sass().on('error', sass.logError)) + .pipe(gulp.dest('./frontend/css')); +}); + +gulp.task('sass:watch', function () { + gulp.watch('./frontend/sass/*.scss', ['sass']); +}); diff --git a/package.json b/package.json new file mode 100644 index 0000000..4859395 --- /dev/null +++ b/package.json @@ -0,0 +1,27 @@ +{ + "name": "school-navigator", + "version": "1.0.0", + "description": ".. image:: https://badge.waffle.io/codefordurham/school-navigator.png?label=ready&title=Ready :target: https://waffle.io/codefordurham/school-navigator :alt: 'Stories in Ready'", + "main": "index.js", + "directories": { + "doc": "docs" + }, + "scripts": { + "watch:css": "gulp sass:watch", + "test": "echo \"Error: no stinkin test specified\" && exit 1" + }, + "repository": { + "type": "git", + "url": "git+https://github.com/codefordurham/school-navigator.git" + }, + "author": "", + "license": "ISC", + "bugs": { + "url": "https://github.com/codefordurham/school-navigator/issues" + }, + "homepage": "https://github.com/codefordurham/school-navigator#readme", + "devDependencies": { + "gulp": "^3.9.1", + "gulp-sass": "^2.3.2" + } +}