Add officer images

This commit is contained in:
Nicholas264 2022-02-10 14:48:25 -08:00
parent 56fd79d6b6
commit 38b0c7b011
27 changed files with 187 additions and 18 deletions

View file

@ -1,7 +1,9 @@
import * as React from "react"; import * as React from "react";
import {Component} from "react"; import {Component} from "react";
interface AvailabilityProps {} interface AvailabilityProps {
checkUrl: string;
}
interface AvailabilityState { interface AvailabilityState {
available: boolean; available: boolean;
} }
@ -13,6 +15,9 @@ export default class Availability extends Component<AvailabilityProps, Availabil
available: false available: false
}; };
} }
private checkAvailable() {
}
public render() { public render() {
return <div className="availability"> return <div className="availability">

View file

@ -15,8 +15,8 @@ export default class Carousel extends Component<CarouselProps, CarouselState> {
} }
private scrollToNext(e: MouseEvent) { private scrollToNext(e: MouseEvent) {
let elem = (this.state.innerRef as any).current; let elem = (this.state.innerRef as any).current as HTMLDivElement;
elem.scrollTo({left: elem.scrollWidth, behavior: "smooth"}) elem.scrollBy({left: elem.parentElement.getBoundingClientRect().width, behavior: "smooth"})
} }
public render() { public render() {

View file

@ -0,0 +1,24 @@
import * as React from "react";
import {Component} from "react";
interface OfficerProps {
name: string;
position: string;
photo: string;
}
interface OfficerState {}
export default class Officer extends Component<OfficerProps, OfficerState> {
constructor(props: OfficerProps) {
super(props);
this.state = {};
}
public render() {
return <div className="officer">
<img className="officer-image" src={this.props.photo}></img>
<span className="officer-name">{this.props.name}</span>
<span className="officer-position">{this.props.position}</span>
</div>;
}
}

View file

@ -21,7 +21,7 @@ export default class TopNav extends React.Component<TopNavProps, TopNavState> {
return <div className="top-nav"> return <div className="top-nav">
<div className="nav-container"> <div className="nav-container">
<img className="logo" src={this.props.image} alt={this.props.alt}></img> <img className="logo" srcSet={`${this.props.image} 2x`} alt={this.props.alt}></img>
{navLinks} {navLinks}
</div> </div>
<div className="bottom-bar"></div> <div className="bottom-bar"></div>

View file

@ -1,5 +1,3 @@
/* Color vars should go here */ /* Color vars should go here */
:root { :root {
--dark-blue: #00629b; --dark-blue: #00629b;
@ -7,8 +5,12 @@
--sky-blue: #6ab7ff; --sky-blue: #6ab7ff;
--grey: #c4d2e3; --grey: #c4d2e3;
--black: #1f1f1f; --black: #1f1f1f;
--white: #eeeeee; --white: #F2F6FF;
--accent: #ffe419; --accent: #FFCD00;
}
#root {
background-color: var(--white);
} }
* { * {
@ -44,13 +46,15 @@ body {
position: relative; position: relative;
} }
.logo { .logo {
width: 10em; width: 20em;
height: auto; height: auto;
padding: 0.5em; padding: 0.5em;
margin-left: 1em;
image-rendering: -webkit-optimize-contrast;
} }
.nav-link { .nav-link {
color: var(--white); color: var(--white);
font-size: 1.6em; font-size: 1.5em;
margin-left: 0.75em; margin-left: 0.75em;
margin-right: 0.75em; margin-right: 0.75em;
text-decoration: none; text-decoration: none;
@ -86,6 +90,10 @@ body {
.row-group { .row-group {
display: flex; display: flex;
flex-direction: row; flex-direction: row;
flex-wrap: wrap;
align-items: baseline;
justify-content: space-between;
column-gap: 2.5em;
} }
.section-title { .section-title {
color: var(--med-blue); color: var(--med-blue);
@ -120,11 +128,11 @@ body {
position: absolute; position: absolute;
top: 0; top: 0;
right: 0; right: 0;
background: linear-gradient(270deg, white, transparent) background: linear-gradient(270deg, var(--white), transparent)
} }
.carousel::before { .carousel::before {
left: 0; left: 0;
background: linear-gradient(90deg, white, transparent); background: linear-gradient(90deg, var(--white), transparent);
} }
.carousel-next { .carousel-next {
position: absolute; position: absolute;
@ -152,9 +160,11 @@ body {
font-weight: 500; font-weight: 500;
color: var(--med-blue); color: var(--med-blue);
padding: 0.5em; padding: 0.5em;
text-decoration: none;
} }
.carousel-item a:hover { .carousel-item a:hover {
color: var(--sky-blue); color: var(--sky-blue);
text-decoration: underline;
} }
.carousel-item a:active { .carousel-item a:active {
color: var(--dark-blue) color: var(--dark-blue)
@ -162,6 +172,9 @@ body {
.description-text { .description-text {
font-size: 1.2em; font-size: 1.2em;
} }
.carousel-item img {
max-width: 20em;
}
/* Image slideshow styles */ /* Image slideshow styles */
.slideshow-image { .slideshow-image {
width: 22em; width: 22em;
@ -182,6 +195,7 @@ body {
font-size: 1.5em; font-size: 1.5em;
color: white; color: white;
margin-top: 1em; margin-top: 1em;
cursor: pointer;
} }
.link-button:hover { .link-button:hover {
background-color: var(--sky-blue); background-color: var(--sky-blue);
@ -190,6 +204,31 @@ body {
background-color: var(--dark-blue); background-color: var(--dark-blue);
} }
.officer {
display: flex;
align-items: center;
justify-content: center;
flex-direction: column;
padding: 1em 0;
width: 10em;
}
.officer-image {
aspect-ratio: 1 / 1;
max-width: 10em;
max-height: 10em;
}
.officer-name {
font-weight: bold;
font-size: 1.2em;
text-align: center;
margin-bottom: 0.15em;
}
.officer-position {
font-style: italic;
font-size: 1.1em;
text-align: center;
}
/* Responsive queries go here */ /* Responsive queries go here */
@media screen and (max-width: 760px) { @media screen and (max-width: 760px) {

BIN
src/public/img/IEEEUCSD.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 42 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 29 KiB

BIN
src/public/img/abby.jpg Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 25 KiB

BIN
src/public/img/brigette.jpg Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 23 KiB

BIN
src/public/img/clyde.jpg Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 35 KiB

BIN
src/public/img/danny.jpg Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 24 KiB

BIN
src/public/img/darin.jpg Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 24 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 7.2 KiB

After

Width:  |  Height:  |  Size: 83 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 42 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 64 KiB

BIN
src/public/img/jason.jpg Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 26 KiB

BIN
src/public/img/jiawen.jpg Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 23 KiB

BIN
src/public/img/kevin.jpg Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 20 KiB

BIN
src/public/img/owen.jpg Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 30 KiB

BIN
src/public/img/parth.jpg Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 24 KiB

BIN
src/public/img/sarp.jpg Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 28 KiB

BIN
src/public/img/sunny.jpg Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 32 KiB

BIN
src/public/img/tasnia.jpg Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 35 KiB

BIN
src/public/img/thanh.jpg Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 29 KiB

BIN
src/public/img/victor.jpg Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 28 KiB

BIN
src/public/img/vuong.jpg Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 26 KiB

View file

@ -6,6 +6,8 @@ import ImageGallery from "./components/ImageSlideshow";
import Carousel from "./components/Carousel"; import Carousel from "./components/Carousel";
import CarouselItem from "./components/CarouselItem"; import CarouselItem from "./components/CarouselItem";
import ButtonLink from "./components/ButtonLink"; import ButtonLink from "./components/ButtonLink";
import Availability from "./components/Availability";
import Officer from "./components/Officer";
// The links that are on the top nav bar that link to a lowercase version of their page // The links that are on the top nav bar that link to a lowercase version of their page
const ACTIVE_PAGES: string[] = ["About","Events","Officers","Projects","Resources","Sponsors"]; const ACTIVE_PAGES: string[] = ["About","Events","Officers","Projects","Resources","Sponsors"];
@ -42,6 +44,104 @@ const EVENTS = [{
location: "/" location: "/"
}]; }];
const officers = [{
name: "Sarp User",
position: "Chair",
photo: "img/sarp.jpg"
},{
name: "Parth Desai",
position: "Vice Chair Finance",
photo: "img/parth.jpg"
},{
name: "Derek Cantor",
position: "Vice Chair Internal",
photo: "img/derek.jpg"
},{
name: "Clyde Baron Rapinan",
position: "Vice Chair Events",
photo: "img/clyde.jpg"
},{
name: "Danny Vo",
position: "Vice Chair Projects",
photo: "img/danny.jpg"
},{
name: "Nick Petrone",
position: "Webmaster",
photo: "img/nick.jpg"
},{
name: "Jiawen Yu",
position: "Technical Chair",
photo: "img/jiawen.jpg"
},{
name: "Victor Ku",
position: "Technical Chair",
photo: "img/victor.jpg"
},{
name: "Sunny Chu",
position: "Technical Chair",
photo: "img/sunny.jpg"
},{
name: "Samyak Karnavat",
position: "Social Chair",
photo: "img/samyak.jpg"
},{
name: "Tasnia Jamal",
position: "Social Chair",
photo: "img/tasnia.jpg"
},{
name: "Hector Montenegro",
position: "Robocup Soccer Chair",
photo: "img/hector.jpg"
},{
name: "Zhiqiang Pi",
position: "Quarterly Projects Chair",
photo: "img/zhiqiang.jpg"
},{
name: "Kevin Chang",
position: "Quarterly Projects Chair",
photo: "img/kevin.jpg"
},{
name: "Benjamin Tang",
position: "Project Space Chair",
photo: "img/benjamin.jpg"
},{
name: "Narek Boghozian",
position: "Project Drive Chair",
photo: "img/narek.jpg"
},{
name: "Jason Liang",
position: "Professional Chair",
photo: "img/jason.jpg"
},{
name: "Vuong Bui",
position: "Professional Chair",
photo: "img/vuong.jpg"
},{
name: "Thanh Tong",
position: "PR Chair - Graphics",
photo: "img/thanh.jpg"
},{
name: "Abby Hackbarth",
position: "PR Chair - Graphics",
photo: "img/abby.jpg"
},{
name: "Brigette Hacia",
position: "PR Chair - Marketing",
photo: "img/brigette.jpg"
},{
name: "Darin Tsui",
position: "Outreach Chair",
photo: "img/darin.jpg"
},{
name: "Soyon Kim",
position: "Outreach Chair",
photo: "img/soyon.jpg"
},{
name: "Niklas Chang",
position: "Events Coordinator",
photo: "img/niklas.jpg"
}];
interface MainProps {} interface MainProps {}
interface MainState {} interface MainState {}
@ -52,15 +152,12 @@ class Main extends React.Component<MainProps, MainState> {
} }
public render() { public render() {
return <> return <>
<TopNav names={ACTIVE_PAGES} links={ACTIVE_PAGES.map(e=>"#" + e.toLowerCase())} image="img/logo.png" alt="IEEE at UCSD Logo"></TopNav> <TopNav names={ACTIVE_PAGES} links={ACTIVE_PAGES.map(e=>"#" + e.toLowerCase())} image="img/IEEEUCSD.png" alt="IEEE at UCSD Logo"></TopNav>
<HorizontalSection title="About" link="about:blank" id="about"> <HorizontalSection title="About" link="about:blank" id="about">
<ImageGallery urls={TEAM_PHOTOS} alt="Team photos" delay={8000}></ImageGallery> <ImageGallery urls={TEAM_PHOTOS} alt="Team photos" delay={8000}></ImageGallery>
<span className="description-text"> <span className="description-text">
This is the about IEEE text that should describe all about our organization. <strong>We are dedicated to helping develop students into professional Engineers</strong><br/><br/>
This text should be a succinct summary of what we're all about. Lorem, ipsum dolor As an organization, we strive to provide opportunities to students both at UC San Diego and in the larger STEM community to gain hands-on experience with autonomous robotics and its various disciplines. Throughout the year, we host dozens of events and workshops to teach skills not frequently taught in the classroom, as well as outreach events for students looking to give back to the STEM community. We also provide professional development and other resources to help students achieve their true potential as they develop into professional engineers.
sit amet consectetur adipisicing elit. Soluta voluptate eligendi vero enim, qui
fugiat eveniet consectetur quis, quas deleniti perferendis minus commodi ducimus
ipsum necessitatibus voluptates sed dolor neque?
</span> </span>
</HorizontalSection> </HorizontalSection>
<HorizontalSection title="Events" link="about:blank" id="events"> <HorizontalSection title="Events" link="about:blank" id="events">
@ -78,8 +175,12 @@ class Main extends React.Component<MainProps, MainState> {
ipsum necessitatibus voluptates sed dolor neque? ipsum necessitatibus voluptates sed dolor neque?
</span> </span>
<br/> <br/>
<Availability checkUrl="/">Check all availability</Availability>
<ButtonLink url="about:blank">Check all availability</ButtonLink> <ButtonLink url="about:blank">Check all availability</ButtonLink>
</HorizontalSection> </HorizontalSection>
<HorizontalSection title="Officers" link="about:blank" id="officers" row={true}>
{officers.map(o=><Officer name={o.name} position={o.position} photo={o.photo} key={o.name}></Officer>)}
</HorizontalSection>
</>; </>;
} }
} }