diff --git a/src/components/Sections/CTASection.tsx b/src/components/Sections/CTASection.tsx
new file mode 100644
index 0000000..5ba27c0
--- /dev/null
+++ b/src/components/Sections/CTASection.tsx
@@ -0,0 +1,104 @@
+
+import React from "react";
+import styled from "styled-components";
+import { colors } from "@theme/colors";
+import Anchor from "@components/Anchor";
+
+const Section = styled.section<{ colors: string }>`
+ ${(p) => p.colors}
+
+ display: flex;
+ justify-content: center;
+ text-align: center;
+ align-items: baseline;
+ padding: 2rem 0;
+
+ flex-direction: row;
+ @media screen and (max-width: 600px) {
+ flex-direction: column;
+ }
+
+ a {
+ color: inherit;
+ }
+
+ & > a {
+ font-weight: 700;
+ text-decoration: none;
+ margin: 0.5rem 1rem 0;
+ font-size: 1rem;
+ text-transform: uppercase;
+ letter-spacing: 0.1rem;
+ }
+
+ & > h1 {
+ a {
+ text-decoration: underline;
+ }
+ a:hover {
+ text-decoration: none;
+ }
+ }
+`;
+
+type Colors = "orange1" | "lightBlue" | "darkBlue" | "blue1" | "lightTurquoise";
+
+interface CTASectionProps {
+ bgColor?: Colors;
+ link?: string;
+ linkText?: string;
+}
+
+const textColors = (bgColor: Colors) => {
+ switch(bgColor) {
+ case "orange1": return `
+color: ${colors.white};
+background-color: ${colors[bgColor]};
+a:hover {
+ color: ${colors.darkBlue};
+}
+`;
+
+ case "darkBlue": return `
+background-color: ${colors[bgColor]};
+color: ${colors.white};
+ `;
+
+ case "lightBlue": return `
+background-color: ${colors[bgColor]};
+color: ${colors.darkBlue};
+a:hover {
+ color: ${colors.white};
+}
+ `;
+
+ case "lightTurquoise": return `
+background-color: ${colors[bgColor]};
+color: ${colors.darkBlue};
+a:hover {
+ color: ${colors.white};
+}
+ `;
+ case "blue1": return `
+background-color: ${colors[bgColor]};
+color: ${colors.white};
+a:hover {
+ color: ${colors.darkBlue};
+}
+ `;
+ default: return ""
+ }
+}
+
+const CTASection: React.FC = ({ bgColor = "orange1", link, linkText, children }) => (
+
+ {children}
+ {link && (
+
+ {linkText}
+
+ )}
+
+);
+
+export default CTASection;
\ No newline at end of file
diff --git a/src/components/Sections/SossoSection.tsx b/src/components/Sections/SossoSection.tsx
deleted file mode 100644
index 3bf9a24..0000000
--- a/src/components/Sections/SossoSection.tsx
+++ /dev/null
@@ -1,45 +0,0 @@
-
-import styled from "styled-components";
-import { PageSection } from "@components/index";
-import { colors } from "@theme/colors";
-
-const SössöSection = styled(PageSection)`
- color: ${colors.white};
- background-color: ${colors.orange1};
-
- display: flex;
- justify-content: center;
- text-align: center;
- align-items: flex-end;
-
- @media screen and (max-width: 600px - 1px) {
- flex-flow: column nowrap;
- align-items: center;
- }
-
- a {
- text-decoration: underline;
- }
-
- & > a {
- font-weight: 700;
- text-decoration: none;
- margin: 0.5rem 1rem 0;
- font-size: 1rem;
- text-transform: uppercase;
- letter-spacing: 0.1rem;
- }
-
- h3, p {
- font-size: 1.5rem;
- font-weight: 200;
- margin-block-start: 0;
- margin-block-end: 0;
- }
-
- a:hover {
- color: ${colors.darkBlue};
- }
-`;
-
-export default SössöSection;
\ No newline at end of file
diff --git a/src/components/Sections/TextSection.tsx b/src/components/Sections/TextSection.tsx
index 022f94d..df0dab9 100644
--- a/src/components/Sections/TextSection.tsx
+++ b/src/components/Sections/TextSection.tsx
@@ -1,8 +1,7 @@
import React from "react";
import styled from "styled-components";
-import { PageSection } from "@components/index";
-const StyledSection = styled(PageSection)`
+const StyledSection = styled.section`
display: grid;
padding: 24px;
diff --git a/src/components/index.tsx b/src/components/index.tsx
index 67c7a1f..190dc7f 100644
--- a/src/components/index.tsx
+++ b/src/components/index.tsx
@@ -5,7 +5,7 @@ export { default as TextAnchor } from "./TextAnchor";
export { default as PageSection } from "./Sections/PageSection";
export { default as Divider } from "./Divider";
export { default as CardSection } from "./Sections/CardSection";
-export { default as SossoSection } from "./Sections/SossoSection";
+export { default as CTASection } from "./Sections/CTASection";
export { default as TextSection } from "./Sections/TextSection";
export { default as InfoBox } from "./InfoBox";
export { default as Accordion } from "./Accordion";
diff --git a/src/views/ActualPage/ActualPageView.tsx b/src/views/ActualPage/ActualPageView.tsx
index a0ea631..8e59127 100644
--- a/src/views/ActualPage/ActualPageView.tsx
+++ b/src/views/ActualPage/ActualPageView.tsx
@@ -1,15 +1,13 @@
import React from "react";
import styled from "styled-components";
-
-import Accordion from "@components/Accordion";
import { Event } from "@models/Event";
import { Post } from "@models/Feed";
+
+import { Divider, CTASection, TextSection, Accordion } from "@components/index";
+import ActualPageHero from "./ActualPageHero";
import EventCalendar from "./EventCalendar";
import News from "./News";
-import { Divider, SossoSection, TextSection } from "@components/index";
-import Anchor from "@components/Anchor";
-import ActualPageHero from "./ActualPageHero";
interface ActualPageViewProps {
events: Event[];
@@ -38,12 +36,13 @@ const ActualPageView: React.FC = ({events, feed}) => {
-
- Kuvia tapahtumista.
-
- Kuvagalleria ›
-
-
+
+ Kuvia tapahtumista.
+
@@ -51,12 +50,13 @@ const ActualPageView: React.FC = ({events, feed}) => {
-
- Sinustako kilta-aktiivi?
-
- Tule mukaan kiltatoimintaan ›
-
-
+
+ Sinustako kilta-aktiivi?
+
Yritystapahtumia ja vastapainoa opiskelulle
diff --git a/src/views/CorporatePage/CorporatePageView.tsx b/src/views/CorporatePage/CorporatePageView.tsx
index 2ea18d8..34e3e92 100644
--- a/src/views/CorporatePage/CorporatePageView.tsx
+++ b/src/views/CorporatePage/CorporatePageView.tsx
@@ -1,8 +1,7 @@
import React from "react";
import CorporatePageHero from "./CorporatePageHero";
import PageLink from "@components/PageLink";
-import { SossoSection, TextSection } from "@components/index";
-import Anchor from "@components/Anchor";
+import { CTASection, TextSection } from "@components/index";
const CorporatePageView: React.FC = () => (
<>
@@ -57,12 +56,13 @@ const CorporatePageView: React.FC = () => (
-
- Mainos Sössöön?
-
- Killan lehden mediakortin löydät täältä›
-
-
+
+ Mainos Sössöön?
+
Työpaikkailmoitukset
diff --git a/src/views/FreshmenPage/FreshmenPageView.tsx b/src/views/FreshmenPage/FreshmenPageView.tsx
index cd40a3a..fc4cc80 100644
--- a/src/views/FreshmenPage/FreshmenPageView.tsx
+++ b/src/views/FreshmenPage/FreshmenPageView.tsx
@@ -3,7 +3,7 @@ import styled from "styled-components";
import FreshmenPageHero from "./FreshmenPageHero";
import PageLink from "@components/PageLink";
import Anchor from "@components/Anchor";
-import { SossoSection, TextSection, InfoBox } from "@components/index";
+import { CTASection, TextSection, InfoBox } from "@components/index";
const KippariImage = styled.img`
max-width:100%;
@@ -56,12 +56,13 @@ const FreshmenPageView: React.FC = () => (
-
- Killassa tapahtuu kaikenlaista!
-
- Seuraa killan tapahtumia
-
-
+
+ Killassa tapahtuu kaikenlaista!
+
Isoryhmät
diff --git a/src/views/FrontPage/FrontPageView.tsx b/src/views/FrontPage/FrontPageView.tsx
index ad4cad0..281ceb2 100644
--- a/src/views/FrontPage/FrontPageView.tsx
+++ b/src/views/FrontPage/FrontPageView.tsx
@@ -1,6 +1,6 @@
import React from "react";
import styled from "styled-components";
-import { Card, PageLink, Divider, CardSection, SossoSection } from "@components/index";
+import { Card, PageLink, Divider, CardSection, CTASection } from "@components/index";
import FrontPageHero from "./FrontPageHero";
import { Event } from "@models/Event";
import { Post } from "@models/Feed";
@@ -62,10 +62,13 @@ const FrontPageView: React.FC = ({ events, feed }) => (
-
- Sössöä vuodesta 1969.
- Lue opiskelijalehden viimeisin numero ›
-
+
+ Sössöä vuodesta 1969.
+
{feed.map(inst => (
diff --git a/src/views/GuildPage/GuildPageView.tsx b/src/views/GuildPage/GuildPageView.tsx
index 47c0f02..32b27c2 100644
--- a/src/views/GuildPage/GuildPageView.tsx
+++ b/src/views/GuildPage/GuildPageView.tsx
@@ -3,7 +3,7 @@ import styled from "styled-components";
import PageLink from "@components/PageLink";
import TextAnchor from "@components/TextAnchor";
import Anchor from "@components/Anchor";
-import { SossoSection, TextSection, InfoBox, Accordion } from "@components/index";
+import { CTASection, TextSection, InfoBox, Accordion } from "@components/index";
import GuildPageHero from "./GuildPageHero";
import FullWidthSection from "@components/Sections/FullWidthSection";
@@ -76,9 +76,9 @@ const GuildPageView: React.FC = () => (
-
- Killan hallinto koostuu XXX henkilöstä.
-
+
+ Killan hallinto koostuu XXX henkilöstä.
+
Organisaatio
@@ -101,9 +101,9 @@ const GuildPageView: React.FC = () => (
-
- Kiltatoimintaa järjestää ja ylläpitää kilta-aktiivit, toimikunnat ja jaokset.
-
+
+ Kiltatoimintaa järjestää ja ylläpitää kilta-aktiivit, toimikunnat ja jaokset.
+
@@ -157,9 +157,7 @@ const GuildPageView: React.FC = () => (
-
- Jäsenedut vuonna 2019
-
+ Jäsenedut vuonna 2019
Aalto-yliopiston tarjoamat monenlaiset edut
diff --git a/src/views/StudiesPage/StudiesPageView.tsx b/src/views/StudiesPage/StudiesPageView.tsx
index 3c6db86..22ab147 100644
--- a/src/views/StudiesPage/StudiesPageView.tsx
+++ b/src/views/StudiesPage/StudiesPageView.tsx
@@ -1,7 +1,7 @@
import React from "react";
import PageLink from "@components/PageLink";
import Anchor from "@components/Anchor";
-import { SossoSection, TextSection } from "@components/index";
+import { CTASection, TextSection } from "@components/index";
import StudiesPageHero from "./StudiesPageHero";
const StudiesPageView: React.FC = () => (
@@ -45,12 +45,13 @@ const StudiesPageView: React.FC = () => (
-
- Hae opiskelemaan!
-
- Lue lisää Aallon sivuilta
-
-
+
+ Hae opiskelemaan!
+
Yliopiston järjestelmiä