From 279b691d29c3fa17896b11a79b4805a41c5b5add Mon Sep 17 00:00:00 2001 From: Betsy Castro <5490820+betsyecastro@users.noreply.github.com> Date: Tue, 21 Apr 2026 16:10:24 -0500 Subject: [PATCH 1/2] Refactor fancy header layout --- public/css/app.css | 44 ++++--- public/mix-manifest.json | 4 +- resources/assets/sass/_profile.scss | 50 ++++---- resources/views/profiles/show.blade.php | 159 ++++++++++++------------ 4 files changed, 136 insertions(+), 121 deletions(-) diff --git a/public/css/app.css b/public/css/app.css index be026771..828eed03 100644 --- a/public/css/app.css +++ b/public/css/app.css @@ -10625,23 +10625,29 @@ button.video-control .fa-play { float: left; } .profile .fancy_header { - background-repeat: no-repeat; - background-attachment: fixed; - background-position: center top; - background-size: cover; - height: 85vh; - position: relative; + display: grid; + grid-template-areas: "stack"; + padding: 0; + background-color: transparent; } -@media (max-width: 992px) { - .profile .fancy_header { - background-size: contain; - background-attachment: scroll; - height: auto; - } - .profile .fancy_header .contact_info { - margin-top: 50%; - box-shadow: 2px 2px 4px #dee2e6; - } +.profile .fancy_header .banner-img, +.profile .fancy_header > .container { + grid-area: stack; +} +.profile .fancy_header .banner-img { + width: 100%; + height: 100%; + -o-object-fit: cover; + object-fit: cover; + -o-object-position: center; + object-position: center; +} +.profile .fancy_header > .container { + position: relative; + display: flex; + align-items: center; + padding: 60px 0; + z-index: 1; } .profile .fancy_header .contact_info { padding: 15px 45px 60px; @@ -10650,12 +10656,12 @@ button.video-control .fa-play { .profile .fancy_header .fancy_link_container { position: absolute; bottom: 45px; - right: 0px; - left: 0px; + right: 0; + left: 0; text-align: center; } .profile .fancy_header .fancy_link { - padding: 20px 25px 20px; + padding: 20px 25px; margin: 15px; background: #f8f9fa; width: auto; diff --git a/public/mix-manifest.json b/public/mix-manifest.json index dcb76aea..5f47b422 100644 --- a/public/mix-manifest.json +++ b/public/mix-manifest.json @@ -3,8 +3,8 @@ "/js/app.js.map": "/js/app.js.map?id=271c8f103c569b8f5613b8778d48ee75", "/js/manifest.js": "/js/manifest.js?id=dc9ead3d7857b522d7de22d75063453c", "/js/manifest.js.map": "/js/manifest.js.map?id=389e00e7d7680b68d4e1d128ce27ff48", - "/css/app.css": "/css/app.css?id=0fd161f323dd5c77642c3240bbb47d16", - "/css/app.css.map": "/css/app.css.map?id=3ba6add83b449d9a830b1160dc25d43d", + "/css/app.css": "/css/app.css?id=ce11ed4296fe810607d7a00e088db473", + "/css/app.css.map": "/css/app.css.map?id=4f3b26f57e96f4cceba86a84fcde511e", "/js/vendor.js": "/js/vendor.js?id=77012e19e850a379f73e3ac0c76bc9b1", "/js/vendor.js.map": "/js/vendor.js.map?id=f3f5514d1186aa088c887b6ebe999fe0" } diff --git a/resources/assets/sass/_profile.scss b/resources/assets/sass/_profile.scss index 073cdb46..6bfb563d 100644 --- a/resources/assets/sass/_profile.scss +++ b/resources/assets/sass/_profile.scss @@ -46,41 +46,47 @@ float: left; } - .fancy_header{ - background-repeat: no-repeat; - background-attachment: fixed; - background-position: center top; - background-size: cover; - height: 85vh; - position: relative; - - @media (max-width: map-get($grid-breakpoints, lg)){ - //some mobile adjustment here - background-size: contain; - background-attachment: scroll; - height: auto; - .contact_info { - margin-top: 50%; - box-shadow: 2px 2px 4px $gray-300; - } + .fancy_header { + display: grid; + grid-template-areas: "stack"; + padding: 0; + background-color: transparent; + + .banner-img, + > .container { + grid-area: stack; + } + + .banner-img { + width: 100%; + height: 100%; + object-fit: cover; + object-position: center; + } + + > .container { + position: relative; + display: flex; + align-items: center; + padding: 60px 0; + z-index: 1; } .contact_info { padding: 15px 45px 60px; background: $light; - // opacity: .92; } - .fancy_link_container{ + .fancy_link_container { position: absolute; bottom: 45px; - right: 0px; - left: 0px; + right: 0; + left: 0; text-align: center; } .fancy_link { - padding: 20px 25px 20px; + padding: 20px 25px; margin: 15px; background: $light; width: auto; diff --git a/resources/views/profiles/show.blade.php b/resources/views/profiles/show.blade.php index 173c69e3..ccac46d4 100644 --- a/resources/views/profiles/show.blade.php +++ b/resources/views/profiles/show.blade.php @@ -31,93 +31,96 @@ @stop @section('content')
-
fancy_header) style="background-image: url({{$profile->banner_url}})" @endif> -
-
- @if(!$information->fancy_header) -
- {{ $profile->full_name }} +
+ @if($information->fancy_header) + + @endif + +
+
+ @if(!$information->fancy_header) +
+ {{ $profile->full_name }} +
+ @endif +
+
+

+ @if($profile->isInMemoriam()) + In Memory of
+ @endif + {{ $profile->name }} + @can('delete', $profile) Archive@endcan + @if($editable) Edit@endif + + @if(config('pdf.enabled')) + @can('export', $profile) PDF@endcan + @endif +

+
+ @if($information->distinguished_title)
{{ $information->distinguished_title }}
@endif + @if($information->title)
{{ $information->title }}
@endif + @if($information->secondary_title)
{{ $information->secondary_title }}
@endif + @if($information->tertiary_title)
{{ $information->tertiary_title }}
@endif
- @endif -
-
- -

- @if($profile->isInMemoriam()) - In Memory of
- @endif - {{ $profile->name }} - @can('delete', $profile) Archive@endcan - @if($editable) Edit@endif - - @if(config('pdf.enabled')) - @can('export', $profile) PDF@endcan - @endif -

-
- @if($information->distinguished_title)
{{ $information->distinguished_title }}
@endif - @if($information->title)
{{ $information->title }}
@endif - @if($information->secondary_title)
{{ $information->secondary_title }}
@endif - @if($information->tertiary_title)
{{ $information->tertiary_title }}
@endif -
- @if($information->profile_summary)

{{ $information->profile_summary }}

@endif -
- @if($information->email)  
@endif - @if($information->phone) {{ $information->phone }}
@endif - @if($information->location) {{ $information->location }}
@endif - @foreach(['url' => 'url_name', 'secondary_url' => 'secondary_url_name', 'tertiary_url' => 'tertiary_url_name', 'quaternary_url' => 'quaternary_url_name', 'quinary_url' => 'quinary_url_name'] as $url_key => $url_name) - @if($information->$url_key) - @if(strpos($information->$url_key, 'twitter') !== false) - - @elseif(strpos($information->$url_key, 'facebook') !== false) - - @elseif(strpos($information->$url_key, 'instagram') !== false) - - @elseif(strpos($information->$url_key, 'github') !== false) - - @elseif(strpos($information->$url_key, 'linkedin') !== false) - - @elseif(strpos($information->$url_key, 'youtube') !== false) - - @elseif(strpos($information->$url_key, 'researchgate') !== false) - - @elseif(strpos($information->$url_key, 'google') !== false) - - @else - - @endif - @if($information->$url_name){{$information->$url_name}}@else{{"Website"}}@endif
@endif - @endforeach - @if($information->orc_id) ORCID
@endif - @if($information->show_accepting_students || $information->show_not_accepting_students) -

- @if($profile->isUnlisted()) -

Unlisted

- @endif - @if($information->show_accepting_students) -

Currently accepting {{ collect(['undergraduate' => $information->accepting_students, 'graduate' => $information->accepting_grad_students])->filter()->keys()->implode(' and ') }} students

+ @if($information->profile_summary)

{{ $information->profile_summary }}

@endif +
+ @if($information->email)  
@endif + @if($information->phone) {{ $information->phone }}
@endif + @if($information->location) {{ $information->location }}
@endif + @foreach(['url' => 'url_name', 'secondary_url' => 'secondary_url_name', 'tertiary_url' => 'tertiary_url_name', 'quaternary_url' => 'quaternary_url_name', 'quinary_url' => 'quinary_url_name'] as $url_key => $url_name) + @if($information->$url_key) + @if(strpos($information->$url_key, 'twitter') !== false) + + @elseif(strpos($information->$url_key, 'facebook') !== false) + + @elseif(strpos($information->$url_key, 'instagram') !== false) + + @elseif(strpos($information->$url_key, 'github') !== false) + + @elseif(strpos($information->$url_key, 'linkedin') !== false) + + @elseif(strpos($information->$url_key, 'youtube') !== false) + + @elseif(strpos($information->$url_key, 'researchgate') !== false) + + @elseif(strpos($information->$url_key, 'google') !== false) + + @else + @endif - @if($information->show_not_accepting_students) -

Not currently accepting {{ collect(['undergraduate' => $information->not_accepting_students, 'graduate' => $information->not_accepting_grad_students])->filter()->keys()->implode(' or ') }} students

- @endif -

+ @if($information->$url_name){{$information->$url_name}}@else{{"Website"}}@endif
@endif + @endforeach + @if($information->orc_id) ORCID
@endif + @if($information->show_accepting_students || $information->show_not_accepting_students) +

+ @if($profile->isUnlisted()) +

Unlisted

+ @endif + @if($information->show_accepting_students) +

Currently accepting {{ collect(['undergraduate' => $information->accepting_students, 'graduate' => $information->accepting_grad_students])->filter()->keys()->implode(' and ') }} students

@endif -
- @if(!$profile->tags->isEmpty() || $editable) -
- Tags: @include('tags.show', ['model' => $profile]) @if($editable) Edit@endif + @if($information->show_not_accepting_students) +

Not currently accepting {{ collect(['undergraduate' => $information->not_accepting_students, 'graduate' => $information->not_accepting_grad_students])->filter()->keys()->implode(' or ') }} students

+ @endif +

+ @endif
- @endif + @if(!$profile->tags->isEmpty() || $editable) +
+ Tags: @include('tags.show', ['model' => $profile]) @if($editable) Edit@endif
+ @endif
- @if($information->fancy_header) - - @endif
+ @if($information->fancy_header) + + @endif
+