From 98355a1eea0926d221ffe8dde088ca125f92cf13 Mon Sep 17 00:00:00 2001
From: Luis Felipe Risch <lfr20@inf.ufpr.br>
Date: Tue, 29 Jun 2021 10:34:32 -0300
Subject: [PATCH] implementing accessibility

---
 src/App.css                                 |   7 +
 src/App.js                                  | 281 ++++++++++---------
 src/Components/Acessibility/ContrastBar.css |  79 ++++++
 src/Components/Acessibility/ContrastBar.js  | 109 +++++++
 src/Components/ActivityListItem.js          |  11 +-
 src/Components/Dropdown.js                  |   7 +-
 src/Components/MenuBar.js                   |  18 +-
 src/Components/Notifications.js             |  13 +-
 src/Store.js                                | 296 ++++++++++----------
 src/env.js                                  |   2 +-
 src/img/OffContrastIcon.png                 | Bin 0 -> 17242 bytes
 src/img/OnContrastIcon.png                  | Bin 0 -> 17257 bytes
 12 files changed, 520 insertions(+), 303 deletions(-)
 create mode 100644 src/Components/Acessibility/ContrastBar.css
 create mode 100644 src/Components/Acessibility/ContrastBar.js
 create mode 100644 src/img/OffContrastIcon.png
 create mode 100644 src/img/OnContrastIcon.png

diff --git a/src/App.css b/src/App.css
index c8cb4a80..8f1f8e1d 100644
--- a/src/App.css
+++ b/src/App.css
@@ -16,3 +16,10 @@ GNU Affero General Public License for more details.
 You should have received a copy of the GNU Affero General Public License
 along with Plataforma Integrada MEC.  If not, see <http://www.gnu.org/licenses/>.*/
 
+.ContrastBackColor {
+  background-color: black !important;
+}
+
+.ContrastTextColor {
+  color: yellow !important;
+}
diff --git a/src/App.js b/src/App.js
index b5a80b2f..479005ee 100644
--- a/src/App.js
+++ b/src/App.js
@@ -53,6 +53,7 @@ import FormationMaterialPage from "./Pages/FormationMaterialPage.js";
 import FormationMaterialIframe from "./Pages/FormationMaterialIframe.js";
 import MaterialPage from "./Pages/MaterialPage";
 import PageNotFound from "./Pages/PageNotFound.js";
+import ContrastBar from './Components/Acessibility/ContrastBar';
 
 import NoteVariables from "./Admin/Pages/Pages/SubPages/NoteVariables";
 import Institution from "./Admin/Pages/Pages/SubPages/Institutions";
@@ -94,6 +95,7 @@ import CreateRole from "./Admin/Components/Components/Inputs/CreateRole";
 import BlockedUser from "./Admin/Pages/Pages/SubPages/BlockedUsers";
 import AppBarAdmin from './Admin/Components/Components/AppBar'
 import createBrowserHistory from 'history/createBrowserHistory'
+import './App.css';
 
 export default function App() {
   // eslint-disable-next-line
@@ -155,20 +157,20 @@ export default function App() {
   const AdminTemplate = (props) => {
     if (CheckUserPermission())
       return (
-          <div style={{ backgroundColor: "	#D3D3D3" }}>
-            <AppBarAdmin />
-            <div style={{ padding: "2em" }}>
-              {props.inner}
-            </div>
+        <div style={{ backgroundColor: "	#D3D3D3" }}>
+          <AppBarAdmin />
+          <div style={{ padding: "2em" }}>
+            {props.inner}
           </div>
-        )
+        </div>
+      )
     else
       return (
         <div style={{ backgroundColor: "	#D3D3D3" }}>
-            <div style={{ padding: "2em" }}>
-              <Unauthorized />
-            </div>
+          <div style={{ padding: "2em" }}>
+            <Unauthorized />
           </div>
+        </div>
       )
   }
 
@@ -176,6 +178,7 @@ export default function App() {
     // add piwik later
     // history={piwik.connectToHistory(customHistory)}
     <BrowserRouter>
+      <ContrastBar />
       <Header />
       <div
         style={{
@@ -224,234 +227,234 @@ export default function App() {
         <Route path="/topico" component={FormationMaterialPage} />
         <Route path="/iframe-colecao" component={FormationMaterialIframe} />
         <Route path="/material-formacao" component={MaterialPage} />
-        
-        <Route 
-          path="/admin/home" 
-          exact={true} 
+
+        <Route
+          path="/admin/home"
+          exact={true}
           render={() => {
-            return <AdminTemplate inner={<Inframe/>}/>
-          }} 
+            return <AdminTemplate inner={<Inframe />} />
+          }}
         />
-        <Route 
-          path="/admin/institutions" 
+        <Route
+          path="/admin/institutions"
           render={() => {
-            return <AdminTemplate inner={<Institution />}/>
-          }} 
+            return <AdminTemplate inner={<Institution />} />
+          }}
         />
-        <Route 
-          path="/admin/institution" 
+        <Route
+          path="/admin/institution"
           render={() => {
-            return <AdminTemplate inner={<InstitutionCard />}/>
-          }} 
+            return <AdminTemplate inner={<InstitutionCard />} />
+          }}
         />
         <Route
           path="/admin/institutionEdit"
           render={() => {
-            return <AdminTemplate inner={<InstitutionsInput />}/>
+            return <AdminTemplate inner={<InstitutionsInput />} />
           }}
         />
         <Route
           path="/admin/InstitutionCreate"
           render={() => {
-            return <AdminTemplate inner={<CreateInstitution />}/>
+            return <AdminTemplate inner={<CreateInstitution />} />
           }}
         />
-        <Route 
-          path="/admin/noteVars" 
+        <Route
+          path="/admin/noteVars"
           render={() => {
-            return <AdminTemplate inner={<NoteVariables />}/>
-          }} 
+            return <AdminTemplate inner={<NoteVariables />} />
+          }}
         />
-        <Route 
-          path="/admin/noteVar" 
+        <Route
+          path="/admin/noteVar"
           render={() => {
-            return <AdminTemplate inner={<NoteVarCard />}/>
-          }} 
+            return <AdminTemplate inner={<NoteVarCard />} />
+          }}
         />
-        <Route 
-          path="/admin/noteVarEdit" 
+        <Route
+          path="/admin/noteVarEdit"
           render={() => {
-            return <AdminTemplate inner={<NoteVarInputs />}/>
-          }} 
+            return <AdminTemplate inner={<NoteVarInputs />} />
+          }}
         />
-        <Route 
-          path="/admin/languages" 
+        <Route
+          path="/admin/languages"
           render={() => {
-            return <AdminTemplate inner={<Languages />}/>
-          }} 
+            return <AdminTemplate inner={<Languages />} />
+          }}
         />
-        <Route 
-          path="/admin/languageEdit" 
+        <Route
+          path="/admin/languageEdit"
           render={() => {
-            return <AdminTemplate inner={<EditLanguage />}/>
-          }} 
+            return <AdminTemplate inner={<EditLanguage />} />
+          }}
         />
-        <Route 
-          path="/admin/languageCreate" 
+        <Route
+          path="/admin/languageCreate"
           render={() => {
-            return <AdminTemplate inner={<CreateLanguage />}/>
-          }} 
+            return <AdminTemplate inner={<CreateLanguage />} />
+          }}
         />
         <Route
           path="/admin/CommunityQuestions"
           render={() => {
-            return <AdminTemplate inner={<CommunityQuestions />}/>
+            return <AdminTemplate inner={<CommunityQuestions />} />
           }}
         />
         <Route
           path="/admin/CommunityQuestion"
           render={() => {
-            return <AdminTemplate inner={<CommunityCard />}/>
+            return <AdminTemplate inner={<CommunityCard />} />
           }}
         />
-        <Route 
-          path="/admin/Collections" 
+        <Route
+          path="/admin/Collections"
           render={() => {
-            return <AdminTemplate inner={<Collections />}/>
-          }} 
+            return <AdminTemplate inner={<Collections />} />
+          }}
         />
-        <Route 
-          path="/admin/Collection" 
+        <Route
+          path="/admin/Collection"
           render={() => {
-            return <AdminTemplate inner={<CollectionCard />}/>
-          }} 
+            return <AdminTemplate inner={<CollectionCard />} />
+          }}
         />
         <Route
           path="/admin/EditCollection"
           render={() => {
-            return <AdminTemplate inner={<EditCollection />}/>
+            return <AdminTemplate inner={<EditCollection />} />
           }}
         />
-        <Route 
-          path="/admin/Ratings" 
+        <Route
+          path="/admin/Ratings"
           render={() => {
-            return <AdminTemplate inner={<Ratings />}/>
-          }} 
+            return <AdminTemplate inner={<Ratings />} />
+          }}
         />
-        <Route 
-          path="/admin/Rating" 
+        <Route
+          path="/admin/Rating"
           render={() => {
-            return <AdminTemplate inner={<RatingCard />}/>
-          }} 
+            return <AdminTemplate inner={<RatingCard />} />
+          }}
         />
-        <Route 
-          path="/admin/EditRating" 
+        <Route
+          path="/admin/EditRating"
           render={() => {
-            return <AdminTemplate inner={<EditRating />}/>
-          }} 
+            return <AdminTemplate inner={<EditRating />} />
+          }}
         />
-        <Route 
-          path="/admin/CreateRating" 
+        <Route
+          path="/admin/CreateRating"
           render={() => {
-            return <AdminTemplate inner={<CreateRating />}/>
-          }} 
+            return <AdminTemplate inner={<CreateRating />} />
+          }}
         />
-        <Route 
-          path="/admin/Questions" 
+        <Route
+          path="/admin/Questions"
           render={() => {
-            return <AdminTemplate inner={<Questions />}/>
-          }} 
+            return <AdminTemplate inner={<Questions />} />
+          }}
         />
-        <Route 
-          path="/admin/CreateQuestion" 
+        <Route
+          path="/admin/CreateQuestion"
           render={() => {
-            return <AdminTemplate inner={<CreateQuestions />}/>
-          }} 
+            return <AdminTemplate inner={<CreateQuestions />} />
+          }}
         />
-        <Route 
-          path="/admin/activities" 
+        <Route
+          path="/admin/activities"
           render={() => {
-            return <AdminTemplate inner={<Activity />}/>
-          }} 
+            return <AdminTemplate inner={<Activity />} />
+          }}
         />
-        <Route 
-          path="/admin/activity" 
+        <Route
+          path="/admin/activity"
           render={() => {
-            return <AdminTemplate inner={<ActivityCard />}/>
-          }} 
+            return <AdminTemplate inner={<ActivityCard />} />
+          }}
         />
         <Route
           path="/admin/learningObjects"
           render={() => {
-            return <AdminTemplate inner={<EducationalObject />}/>
-          }} 
+            return <AdminTemplate inner={<EducationalObject />} />
+          }}
         />
         <Route
           path="/admin/learningObject"
           render={() => {
-            return <AdminTemplate inner={<EducationalObjectCard />}/>
-          }} 
+            return <AdminTemplate inner={<EducationalObjectCard />} />
+          }}
         />
         <Route
           path="/admin/learningObjectEdit"
           render={() => {
-            return <AdminTemplate inner={<EducationalObjectEdit />}/>
-          }} 
+            return <AdminTemplate inner={<EducationalObjectEdit />} />
+          }}
         />
-        <Route 
-          path="/admin/complaints" 
+        <Route
+          path="/admin/complaints"
           render={() => {
-            return <AdminTemplate inner={<Complaints />}/>
-          }} 
+            return <AdminTemplate inner={<Complaints />} />
+          }}
         />
-        <Route 
-          path="/admin/complaint" 
+        <Route
+          path="/admin/complaint"
           render={() => {
-            return <AdminTemplate inner={<ComplaintCard />}/>
-          }} 
+            return <AdminTemplate inner={<ComplaintCard />} />
+          }}
         />
         <Route
           path="/admin/users/teacher_requests"
           render={() => {
-            return <AdminTemplate inner={<AproveTeacher />}/> 
+            return <AdminTemplate inner={<AproveTeacher />} />
           }} />
-        <Route 
-          path="/admin/usersList" 
+        <Route
+          path="/admin/usersList"
           render={() => {
-            return <AdminTemplate inner={<UserList />}/>
-          }} 
+            return <AdminTemplate inner={<UserList />} />
+          }}
         />
-        <Route 
-          path="/admin/user" 
+        <Route
+          path="/admin/user"
           render={() => {
-            return <AdminTemplate inner={<UserCard />}/>
-          }} 
+            return <AdminTemplate inner={<UserCard />} />
+          }}
         />
-        <Route 
-          path="/admin/EditUser" 
+        <Route
+          path="/admin/EditUser"
           render={() => {
-            return <AdminTemplate inner={<EditUser />}/>
-          }} 
+            return <AdminTemplate inner={<EditUser />} />
+          }}
         />
-        <Route 
-          path="/admin/permissions" 
+        <Route
+          path="/admin/permissions"
           render={() => {
-            return <AdminTemplate inner={<UserPermissions />}/>
-          }} 
+            return <AdminTemplate inner={<UserPermissions />} />
+          }}
         />
-        <Route 
-          path="/admin/EditPermissions" 
+        <Route
+          path="/admin/EditPermissions"
           render={() => {
-            return <AdminTemplate inner={<EditRole />}/>
-          }} 
+            return <AdminTemplate inner={<EditRole />} />
+          }}
         />
-        <Route 
-          path="/admin/CreateRole" 
+        <Route
+          path="/admin/CreateRole"
           render={() => {
-            return <AdminTemplate inner={<CreateRole />}/>
-          }} 
+            return <AdminTemplate inner={<CreateRole />} />
+          }}
         />
-        <Route 
-          path="/admin/BlockedUsers" 
+        <Route
+          path="/admin/BlockedUsers"
           render={() => {
-            return <AdminTemplate inner={<BlockedUser />}/>
-          }} 
+            return <AdminTemplate inner={<BlockedUser />} />
+          }}
         />
-        <Route 
-          path="/admin/sendEmail" 
+        <Route
+          path="/admin/sendEmail"
           render={() => {
-            return <AdminTemplate inner={<SendEmail />}/>
-          }} 
+            return <AdminTemplate inner={<SendEmail />} />
+          }}
         />
 
         <Route path='*' component={PageNotFound} />
diff --git a/src/Components/Acessibility/ContrastBar.css b/src/Components/Acessibility/ContrastBar.css
new file mode 100644
index 00000000..278dbe0d
--- /dev/null
+++ b/src/Components/Acessibility/ContrastBar.css
@@ -0,0 +1,79 @@
+/*Copyright (C) 2019 Centro de Computacao Cientifica e Software Livre
+Departamento de Informatica - Universidade Federal do Parana
+
+This file is part of Plataforma Integrada MEC.
+
+Plataforma Integrada MEC is free software: you can redistribute it and/or modify
+it under the terms of the GNU Affero General Public License as published by
+the Free Software Foundation, either version 3 of the License, or
+(at your option) any later version.
+
+Plataforma Integrada MEC is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+GNU Affero General Public License for more details.
+
+You should have received a copy of the GNU Affero General Public License
+along with Plataforma Integrada MEC.  If not, see <http://www.gnu.org/licenses/>.*/
+
+
+.contrastButton{
+  border: none;
+  padding: 0;
+  background: none;
+  background-color: white;
+}
+.contrastButton:active {
+  border: none;
+  padding: 0;
+  background: none;
+  background-color: white;
+}
+.bar{
+  background-color: white;
+  width: 100%;
+  height: 18px; 
+}
+
+.Contrastbar{
+  background-color: black;
+  width: 100%;
+  height: 18px;
+  border-bottom: 1px solid white;
+}
+
+.text{
+  color: grey;
+  cursor: pointer;
+  width: 140px;
+  font-size: 13px;
+  padding-left: 10px;
+  padding-right: 10px;
+  text-align: center;
+  vertical-align: middle;
+  overflow: auto;
+}
+
+.Contrasttext{
+  color: yellow;
+  text-decoration: underline;
+  cursor: pointer;
+  width: 140px;
+  font-size: 13px;
+  padding-left: 10px;
+  padding-right: 10px;
+  text-align: center;
+  vertical-align: middle;
+}
+
+.textRight {
+  float:right;
+  height:100%;
+  display: flex;
+  font-size: 13px;
+}
+.textLeft {
+  float:left;
+  height:100%;
+  font-size: 13px;
+}
\ No newline at end of file
diff --git a/src/Components/Acessibility/ContrastBar.js b/src/Components/Acessibility/ContrastBar.js
new file mode 100644
index 00000000..88040c98
--- /dev/null
+++ b/src/Components/Acessibility/ContrastBar.js
@@ -0,0 +1,109 @@
+/*Copyright (C) 2019 Centro de Computacao Cientifica e Software Livre
+Departamento de Informatica - Universidade Federal do Parana
+
+This file is part of Plataforma Integrada MEC.
+
+Plataforma Integrada MEC is free software: you can redistribute it and/or modify
+it under the terms of the GNU Affero General Public License as published by
+the Free Software Foundation, either version 3 of the License, or
+(at your option) any later version.
+
+Plataforma Integrada MEC is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+GNU Affero General Public License for more details.
+
+You should have received a copy of the GNU Affero General Public License
+along with Plataforma Integrada MEC.  If not, see <http://www.gnu.org/licenses/>.*/
+
+import React from 'react';
+import './ContrastBar.css';
+import ContrastImageOn from '../../img/OnContrastIcon.png';
+import ContrastImageOff from '../../img/OffContrastIcon.png';
+import { Store } from '../../Store';
+
+/**
+ * Bar allowing for the toggle of the high contrast mode on the page.
+ */
+function ContrastBar() {
+  /* eslint-disable */
+
+  // Hook to set contrast context
+  const { state, dispatch } = React.useContext(Store);
+
+
+  const setContrastAction = (newContrast) => {
+    console.log(newContrast)
+    return dispatch({
+      type: 'SET_CONTRAST',
+      payload: newContrast
+    })
+  }
+
+  const setFontSizeAction = (newFontSize) => {
+    return dispatch({
+      type: 'SET_FONT_SIZE',
+      payload: newFontSize
+    })
+  }
+
+  React.useEffect(() => { }, [state]);
+
+  const toggleContrast = () => {
+    var status = (state.contrast === '' ? 'Contrast' : '')
+    setContrastAction(status)
+  }
+  const incrementFontSize = () => {
+    document.getElementsByTagName("body")[0].style.fontSize = (parseInt(state.fontSize, 10) + 1) + "px";
+    setFontSizeAction(parseInt(state.fontSize, 10) + 1);
+  }
+  const decrementFontSize = () => {
+    document.getElementsByTagName("body")[0].style.fontSize = (parseInt(state.fontSize, 10) - 1) + "px";
+    setFontSizeAction(parseInt(state.fontSize, 10) - 1);
+  }
+  const defaultFontSize = () => {
+    setFontSizeAction(15);
+    document.getElementsByTagName("body")[0].style.fontSize = "15px";
+  }
+
+  return (
+    <React.Fragment>
+      <div className={`${state.contrast}bar`}>
+        <div className='textLeft hide-on-small-and-down'>
+          <a className={`${state.contrast}text`} accessKey="1" href="#conteudo" title="Ir para o conteúdo alt + 1">
+            Conteúdo 1
+          </a>
+          <a className={`${state.contrast}text`} accessKey="2" href="#menu" title="Ir para o menu alt + 2">
+            Menu 2
+        </a>
+          <a className={`${state.contrast}text`} accessKey="3" href="#rodape" title="Ir para o rodapé alt + 3">
+            Rodapé 3
+        </a>
+        </div>
+        <div className='textRight'>
+          <div>
+            <a className={`${state.contrast}text`} onClick={incrementFontSize} title="Aumentar tamanho da fonte">
+              A+
+          </a>
+            <a className={`${state.contrast}text`} onClick={decrementFontSize} title="Diminuir tamanho da fonte">
+              A-
+          </a>
+            <a className={`${state.contrast}text`} onClick={defaultFontSize} title="Restaurar tamanho da fonte">
+              A
+          </a>
+          </div>
+          <div onClick={toggleContrast}>
+            <a className={`${state.contrast}text`} title="Ativar modo de alto contraste">
+              <img src={state.contrast === '' ? ContrastImageOff : ContrastImageOn} style={{ marginRight: 5 }} alt="ContrastIcon" width="11" height="11" />
+            Contraste
+          </a>
+          </div>
+
+        </div>
+      </div>
+    </React.Fragment>
+  );
+
+}
+
+export default ContrastBar;
\ No newline at end of file
diff --git a/src/Components/ActivityListItem.js b/src/Components/ActivityListItem.js
index 0d249401..3a3eb3bd 100644
--- a/src/Components/ActivityListItem.js
+++ b/src/Components/ActivityListItem.js
@@ -115,7 +115,7 @@ export default function ActivityListItem(props) {
     }, [])
 
     return (
-        <StyledListItem onMenuBar={props.onMenuBar}>
+        <StyledListItem onMenuBar={props.onMenuBar} contrast={props.contrast}>
             {
                 !props.onMenuBar &&
                 <>
@@ -138,10 +138,10 @@ export default function ActivityListItem(props) {
                 }
                 secondary={
                     <div>
-                       
+
                         <span>
                             <Link to={{
-                                pathname:  props.ownerHref,
+                                pathname: props.ownerHref,
                                 state: '0',
                             }} className="owner-name-a" >{props.ownerName}</Link> {activity.text} <Link to={props.recipientHref} className="recipient-name-a">{props.recipientName}</Link> {activity.text2}
                         </span>
@@ -167,8 +167,9 @@ const StyledListItem = styled(ListItem)`
 
     .time-ago-span {
     	font-size : 12px;
-	font-family : 'Lato', medium;
-	color : #787380;
+        font-family : 'Lato', medium;
+        color: ${props => props.contrast === '' ? "#787380" : "yellow"};
+        color : #787380;
     }
 
     .owner-name-a {
diff --git a/src/Components/Dropdown.js b/src/Components/Dropdown.js
index cc064489..ed252132 100644
--- a/src/Components/Dropdown.js
+++ b/src/Components/Dropdown.js
@@ -73,10 +73,10 @@ export default function PositionedPopper(props) {
         {({ TransitionProps }) => (
           <Fade {...TransitionProps} timeout={350}>
             <Paper>
-              <MenuList>
+              <MenuList className={`${state.contrast}BackColor`}>
                 {
                   props.items.map((item) =>
-                    <Link onClick={handleItemClicked} style={{ textDecoration: "none", color: "black" }} key={`${item.name}_${new Date().toString()}`} to={item.href} ><MenuItem>{item.name}</MenuItem></Link>
+                    <Link onClick={handleItemClicked} className={`${state.contrast}TextColor`} style={{ textDecoration: "none", color: "black" }} key={`${item.name}_${new Date().toString()}`} to={item.href} ><MenuItem>{item.name}</MenuItem></Link>
                   )
                 }
               </MenuList>
@@ -85,7 +85,8 @@ export default function PositionedPopper(props) {
         )}
       </Popper>
       <Button
-        style={{ textTransform: "none", fontSize: "14px" }}
+        className={`${state.contrast}TextColor`}
+        style={{ textTransform: "none" }}
         aria-controls="menu-list-grow"
         aria-haspopup="true"
         onClick={handleClick('bottom')}
diff --git a/src/Components/MenuBar.js b/src/Components/MenuBar.js
index c79d52b6..436cf2d7 100644
--- a/src/Components/MenuBar.js
+++ b/src/Components/MenuBar.js
@@ -158,18 +158,18 @@ export default function MenuBar(props) {
   const minhaArea = buildMyAreaTabs()
 
   return (
-    <ContainerStyled fluid={true} >
+    <ContainerStyled fluid={true} className={`${state.contrast}BackColor`}>
       <Left>
         <Link to="/"> <ImageStyled src={logo} alt="Plataforma Integrada" /> </Link>
         <Dropdown name="Sobre" items={menuSobre} />
         <Dropdown name="Ajuda" items={menuAjuda} />
         <a href="http://educacaoconectada.mec.gov.br/" rel="noopener noreferrer" target="_blank" >
-          <ButtonStyled >Educação Conectada</ButtonStyled>
+          <ButtonStyled className={`${state.contrast}TextColor`} >Educação Conectada</ButtonStyled>
         </a>
         {/*<Link to="/loja">
             <ButtonStyled>Lojinha</ButtonStyled>
         </Link>*/}
-        <ButtonStyled onClick={props.openSearchBar} ><IconSearchStyled />Buscar</ButtonStyled>
+        <ButtonStyled className={`${state.contrast}TextColor`} onClick={props.openSearchBar} ><IconSearchStyled className={`${state.contrast}TextColor`} />Buscar</ButtonStyled>
 
       </Left>
       <Right>
@@ -179,9 +179,9 @@ export default function MenuBar(props) {
               <>
                 <div style={{ boxSizing: "border-box" }}>
                   <Link to="/termos-publicar-recurso">
-                    <ButtonPublicarRecurso>
-                      <CloudUploadIcon style={{ color: "white", marginLeft: "0" }} />
-                      <span style={{ color: "#fff", textAlign: "center", alignSelf: "center", fontWeight: "500" }} >
+                    <ButtonPublicarRecurso className={`${state.contrast}BackColor`}>
+                      <CloudUploadIcon className={`${state.contrast}TextColor`} style={{ color: "white", marginLeft: "0" }} />
+                      <span className={`${state.contrast}TextColor`} style={{ color: "#fff", textAlign: "center", alignSelf: "center", fontWeight: "500" }} >
                         PUBLICAR RECURSO
                       </span>
                     </ButtonPublicarRecurso>
@@ -198,9 +198,9 @@ export default function MenuBar(props) {
             )
             : (
               <React.Fragment>
-                <ButtonPubRecursoStyled onClick={props.openLogin}>PUBLICAR RECURSO?</ButtonPubRecursoStyled>
-                <ButtonStyled onClick={props.openLogin}><ExitToAppIcon style={{ color: "#00bcd4" }} />Entrar</ButtonStyled>
-                <ButtonStyled onClick={props.openSignUp}>Cadastre-<span style={{textTransform: 'lowercase'}}>se</span></ButtonStyled>
+                <ButtonPubRecursoStyled className={`${state.contrast}TextColor`} onClick={props.openLogin}>PUBLICAR RECURSO?</ButtonPubRecursoStyled>
+                <ButtonStyled className={`${state.contrast}TextColor`} onClick={props.openLogin}><ExitToAppIcon className={`${state.contrast}TextColor`} style={{ color: "#00bcd4" }} />Entrar</ButtonStyled>
+                <ButtonStyled className={`${state.contrast}TextColor`} onClick={props.openSignUp}>Cadastre-<span style={{ textTransform: 'lowercase' }}>se</span></ButtonStyled>
               </React.Fragment>
             )
         }
diff --git a/src/Components/Notifications.js b/src/Components/Notifications.js
index c8fbe2ae..16c50713 100644
--- a/src/Components/Notifications.js
+++ b/src/Components/Notifications.js
@@ -15,7 +15,7 @@ GNU Affero General Public License for more details.
 
 You should have received a copy of the GNU Affero General Public License
 along with Plataforma Integrada MEC.  If not, see <http://www.gnu.org/licenses/>.*/
-import React, { useState, useEffect } from 'react';
+import React, { useState, useEffect, useContext } from 'react';
 import NotificationsIcon from '@material-ui/icons/Notifications';
 import { Button } from '@material-ui/core';
 import Badge from '@material-ui/core/Badge';
@@ -28,6 +28,7 @@ import { withStyles } from '@material-ui/core/styles';
 import { Link } from 'react-router-dom'
 import { getRecipientHref } from './Activities/getRecipientHref.js'
 import SnackBar from '../Components/SnackbarComponent'
+import { Store } from '../Store';
 
 const StyledBadge = styled(Badge)`
     .MuiBadge-dot-45{
@@ -75,6 +76,7 @@ const StyledMenu = withStyles({
 
 export default function Notification(props) {
     const [anchorEl, setAnchorEl] = React.useState(null);
+    const { state } = useContext(Store);
     const [notifications, setNotifications] = useState([]);
     const [snack, setSnack] = useState({
         open: false,
@@ -187,7 +189,7 @@ export default function Notification(props) {
             />
             <StyledNotificationButton onClick={handleClick}>
                 <StyledBadge badgeContent={1} color="secondary" variant="dot" overlap="circle" className="badge">
-                    <StyledNotificationsIcon />
+                    <StyledNotificationsIcon className={`${state.contrast}TextColor`} />
                 </StyledBadge>
             </StyledNotificationButton>
             <StyledMenu
@@ -196,8 +198,9 @@ export default function Notification(props) {
                 keepMounted
                 open={Boolean(anchorEl)}
                 onClose={handleClose}
+                contrast={state.contrast}
             >
-                <ContainerDiv>
+                <ContainerDiv contrast={state.contrast}>
                     <div className="cabecalho">
                         <span style={{ fontSize: "15px" }}>NOTIFICAÇÕES •</span>
                         <span className="cabecalho-marcar" onClick={handleClickNotification}>Marcar todas como lidas</span>
@@ -206,6 +209,7 @@ export default function Notification(props) {
                         notifications.map((notification) =>
                             (notification.viewed === false) &&
                             <ActivityListItem
+                                contrast={state.contrast}
                                 onMenuBar={true}
                                 avatar={notification.owner.avatar ? apiDomain + notification.owner.avatar : null}
                                 activity={notification.activity}
@@ -247,11 +251,12 @@ const ContainerDiv = styled.div`
     overflow-y : scroll;
     padding : 5px 5px 5px 5px;
     min-width : 160px;
-    background-color : #f1f1f1;
+    background-color: ${props => props.contrast === '' ? "#f1f1f1" : "black"};
 
     .cabecalho {
         border-bottom : 1px solid #dadada;
         padding : 10px 15px;
+        color: ${props => props.contrast === '' ? "black" : "yellow"};
 
         .cabecalho-marcar {
             font-family: Lato,bold;
diff --git a/src/Store.js b/src/Store.js
index 0cb5c033..6b8598b6 100644
--- a/src/Store.js
+++ b/src/Store.js
@@ -21,158 +21,170 @@ import React from 'react'
 export const Store = React.createContext()
 
 const initialState = {
-  searchOpen: false,
-  userIsLoggedIn : false,
-  userAgreedToPublicationTerms: false,
-  userAgreedToPublicationPermissions: false,
-  modalColaborarPlataformaOpen : false,
-  search: {
-    query: '*',
-    class: 'LearningObject'
-  },
-  windowSize: {
-    width: 0,
-    height: 0
-},
-  currentUser: {
-      askTeacherQuestion : false,
-      id : '',
-      name : '',
-      email : '',
-      avatar : '',
-      cover : '',
-      uid : '',
-      follows_count : 0,
-      collections_count : 0,
-      submitter_request : 'default',
-      roles : []
-  }
+    searchOpen: false,
+    userIsLoggedIn: false,
+    userAgreedToPublicationTerms: false,
+    userAgreedToPublicationPermissions: false,
+    modalColaborarPlataformaOpen: false,
+    search: {
+        query: '*',
+        class: 'LearningObject'
+    },
+    windowSize: {
+        width: 0,
+        height: 0
+    },
+    currentUser: {
+        askTeacherQuestion: false,
+        id: '',
+        name: '',
+        email: '',
+        avatar: '',
+        cover: '',
+        uid: '',
+        follows_count: 0,
+        collections_count: 0,
+        submitter_request: 'default',
+        roles: []
+    },
+    contrast: '',
+    fontSize: 15,
 }
 
 
 
 function reducer(state, action) {
-  switch (action.type){
-    case 'SAVE_SEARCH':
-      return {
-        ...state,
-        search: action.newSearch
-      }
-    case 'HANDLE_SEARCH_BAR':
-      return {
-        ...state,
-        searchOpen: action.opened
-      }
-    case 'WINDOW_SIZE':
-      return {
-        ...state,
-        windowSize: action.innerWindow
-      }
-    case 'USER_LOGGED_IN':
-        if (action.login.avatar_file_name) {
-            Object.defineProperty(action.login, 'avatar',
-                Object.getOwnPropertyDescriptor(action.login, 'avatar_file_name'));
-            delete action.login['avatar_file_name'];
-        }
-        if (action.login.cover_file_name) {
-            Object.defineProperty(action.login, 'cover',
-                Object.getOwnPropertyDescriptor(action.login, 'cover_file_name'));
-            delete action.login['cover_file_name'];
-        }
-      return {
-          ...state,
-          userIsLoggedIn:action.userLoggedIn,
-          currentUser:action.login
+    switch (action.type) {
+        case 'SET_CONTRAST':
+            return {
+                ...state,
+                contrast: action.payload
+            };
+        case 'SET_FONT_SIZE':
+            return {
+                ...state,
+                fontSize: action.payload
+            };
+        case 'SAVE_SEARCH':
+            return {
+                ...state,
+                search: action.newSearch
+            }
+        case 'HANDLE_SEARCH_BAR':
+            return {
+                ...state,
+                searchOpen: action.opened
+            }
+        case 'WINDOW_SIZE':
+            return {
+                ...state,
+                windowSize: action.innerWindow
+            }
+        case 'USER_LOGGED_IN':
+            if (action.login.avatar_file_name) {
+                Object.defineProperty(action.login, 'avatar',
+                    Object.getOwnPropertyDescriptor(action.login, 'avatar_file_name'));
+                delete action.login['avatar_file_name'];
+            }
+            if (action.login.cover_file_name) {
+                Object.defineProperty(action.login, 'cover',
+                    Object.getOwnPropertyDescriptor(action.login, 'cover_file_name'));
+                delete action.login['cover_file_name'];
+            }
+            return {
+                ...state,
+                userIsLoggedIn: action.userLoggedIn,
+                currentUser: action.login
+            }
+        case 'USER_SIGNED_UP':
+            return {
+                ...state,
+                userIsLoggedIn: action.userLoggedIn,
+                currentUser: action.user
+            }
+        case 'USER_LOGGED_OUT':
+            localStorage.clear()
+            return {
+                ...state,
+                userIsLoggedIn: action.userLoggedOut,
+                currentUser: {
+                    askTeacherQuestion: false,
+                    id: '',
+                    name: '',
+                    email: '',
+                    avatar_file_name: '',
+                    cover_file_name: '',
+                    uid: '',
+                    follows_count: 0,
+                    collections_count: 0,
+                    submitter_request: 'default',
+                    roles: []
+                },
+                userAgreedToPublicationTerms: false,
+                userAgreedToPublicationPermissions: false
+            }
+        case 'USER_AGREED_TO_PUBLICATION_TERMS':
+            return {
+                ...state,
+                userAgreedToPublicationTerms: action.userAgreement
+            }
+        case 'USER_AGREED_TO_PUBLICATION_PERMISSIONS':
+            return {
+                ...state,
+                userAgreedToPublicationPermissions: action.userAgreement
+            }
+        case 'USER_ACCESSED_USER_PAGE':
+            return {
+                ...state,
+                currentUser: action.set
+            }
+        case 'USER_CHANGED_COVER':
+            return {
+                ...state,
+                currentUser: action.currUser
+            }
+        case 'USER_DELETED_ACCOUNT':
+            localStorage.clear()
+            return {
+                ...state,
+                userIsLoggedIn: false,
+                currentUser: {
+                    askTeacherQuestion: false,
+                    id: '',
+                    name: '',
+                    email: '',
+                    avatar_file_name: '',
+                    cover_file_name: '',
+                    uid: '',
+                    follows_count: 0,
+                    collections_count: 0,
+                    submitter_request: 'default',
+                    roles: []
+                },
+            }
+        case 'TOGGLE_MODAL_COLABORAR_PLATAFORMA':
+            return {
+                ...state,
+                modalColaborarPlataformaOpen: action.modalColaborarPlataformaOpen
+            }
+        case 'GET_USER':
+            return {
+                ...state,
+                currentUser: action.user
+            }
+        case 'USER_UPDATED_EMAIL':
+            return {
+                ...state,
+                currentUser: action.currUser
+            }
+        default:
+            return state
     }
-    case 'USER_SIGNED_UP':
-      return {
-          ...state,
-          userIsLoggedIn:action.userLoggedIn,
-          currentUser:action.user
-    }
-    case 'USER_LOGGED_OUT':
-        localStorage.clear()
-        return {
-            ...state,
-            userIsLoggedIn:action.userLoggedOut,
-            currentUser:{
-                askTeacherQuestion : false,
-                id : '',
-                name : '',
-                email : '',
-                avatar_file_name : '',
-                cover_file_name : '',
-                uid : '',
-                follows_count : 0,
-                collections_count : 0,
-                submitter_request : 'default',
-                roles : []
-            },
-            userAgreedToPublicationTerms: false,
-            userAgreedToPublicationPermissions: false
-        }
-    case 'USER_AGREED_TO_PUBLICATION_TERMS':
-        return {
-            ...state,
-            userAgreedToPublicationTerms: action.userAgreement
-        }
-    case 'USER_AGREED_TO_PUBLICATION_PERMISSIONS':
-        return {
-            ...state,
-            userAgreedToPublicationPermissions : action.userAgreement
-        }
-    case 'USER_ACCESSED_USER_PAGE':
-        return {
-            ...state,
-            currentUser : action.set
-        }
-    case 'USER_CHANGED_COVER':
-        return {
-            ...state,
-            currentUser : action.currUser
-        }
-    case 'USER_DELETED_ACCOUNT':
-        localStorage.clear()
-        return {
-            ...state,
-            userIsLoggedIn:false,
-            currentUser: {
-                askTeacherQuestion : false,
-                id : '',
-                name : '',
-                email : '',
-                avatar_file_name : '',
-                cover_file_name : '',
-                uid : '',
-                follows_count : 0,
-                collections_count : 0,
-                submitter_request : 'default',
-                roles : []
-            },
-        }
-    case 'TOGGLE_MODAL_COLABORAR_PLATAFORMA':
-        return {
-            ...state,
-            modalColaborarPlataformaOpen : action.modalColaborarPlataformaOpen
-        }
-    case 'GET_USER':
-        return {
-            ...state,
-            currentUser:action.user
-      }
-    case 'USER_UPDATED_EMAIL':
-        return {
-            ...state,
-            currentUser : action.currUser
-        }
-    default:
-      return state
-  }
 }
 
 export function StoreProvider(props) {
     const [state, dispatch] = React.useReducer(reducer, initialState);
-    const value = { state, dispatch };  
+    const value = { state, dispatch };
     return (
         <Store.Provider value={value}>
             {props.children}
diff --git a/src/env.js b/src/env.js
index 7284c427..95815e96 100644
--- a/src/env.js
+++ b/src/env.js
@@ -17,7 +17,7 @@ You should have received a copy of the GNU Affero General Public License
 along with Plataforma Integrada MEC.  If not, see <http://www.gnu.org/licenses/>.*/
 
 
-var apiDomain = 'https://api.portalmectest.c3sl.ufpr.br',
+var apiDomain = 'https://api.portalmec.c3sl.ufpr.br',
   apiVersion = 'v1',
   apiUrl = apiDomain + '/' + apiVersion;
 
diff --git a/src/img/OffContrastIcon.png b/src/img/OffContrastIcon.png
new file mode 100644
index 0000000000000000000000000000000000000000..f44e653f9499dec5cfc293de994c1081ff9c64ec
GIT binary patch
literal 17242
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

literal 0
HcmV?d00001

diff --git a/src/img/OnContrastIcon.png b/src/img/OnContrastIcon.png
new file mode 100644
index 0000000000000000000000000000000000000000..3ae2fd847b997f007110cfb4d85930f639714ab5
GIT binary patch
literal 17257
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
Hl+XkK1V%$3

literal 0
HcmV?d00001

-- 
GitLab