diff --git a/src/pages/MonitoringPage/MonitoringPage.module.css b/src/pages/MonitoringPage/MonitoringPage.module.css index 3db4884..451b229 100644 --- a/src/pages/MonitoringPage/MonitoringPage.module.css +++ b/src/pages/MonitoringPage/MonitoringPage.module.css @@ -1,88 +1,122 @@ -/* MonitoringPage UI*/ - -.dashboard-container { +.dashboardContainer { display: grid; + grid-template-columns: 2fr 1fr; /* Left = content, Right = logs */ + grid-template-rows: auto 1fr auto; /* Header, Main, Footer */ grid-template-areas: - 'header header header' - 'main logs logs' - 'footer footer footer'; - grid-template-columns: 2fr 1fr 1fr; + "header logs" + "main logs" + "footer footer"; gap: 1rem; padding: 1rem; background-color: #f5f5f5; font-family: Arial, sans-serif; } -.experiment-overview { +/* HEADER */ +.experimentOverview { grid-area: header; display: flex; justify-content: space-between; align-items: flex-start; - background: white; - border-radius: 8px; + background: #fff; padding: 1rem; box-shadow: 0 0 5px rgba(0, 0, 0, 0.1); + position: static; /* ensures it scrolls away */ } -.phase-progress .phase { +.phaseProgress { + margin-top: 0.5rem; +} + +.phase { display: inline-block; width: 25px; height: 25px; - border-radius: 5px; margin: 0 3px; text-align: center; line-height: 25px; background: #ccc; } -.phase.active { +.completed { background-color: #5cb85c; color: white; } -.phase.current { +.current { background-color: #f0ad4e; color: white; } -.experiment-controls button { - margin-right: 5px; - border: none; - background: none; - cursor: pointer; - font-size: 1.2rem; -} - -.connection-status .connected { +.connected { color: green; font-weight: bold; } -.phase-overview { +.pause{ + background-color: green; +} + +.next { + background-color: #ccc; +} + +.restartPhase{ + background-color: rgb(255, 123, 0); +} + +.restartExperiment{ + background-color: red; +} + +/* MAIN GRID */ +.phaseOverview { grid-area: main; - background: white; - border-radius: 8px; + display: grid; + grid-template-columns: repeat(2, 1fr); + grid-template-rows: repeat(2, auto); + gap: 1rem; + background: #fff; padding: 1rem; box-shadow: 0 0 5px rgba(0, 0, 0, 0.1); } -.phase-overview section { - margin-bottom: 1rem; +.phaseBox { + background: #f9f9f9; + border: 1px solid #ddd; + padding: 1rem; + display: flex; + flex-direction: column; + box-shadow: inset 0 0 3px rgba(0, 0, 0, 0.05); } -.phase-overview ul { - list-style-type: none; - padding: 0; +.phaseOverviewText { + grid-column: 1 / -1; /* make the title span across both columns */ + font-size: 1.4rem; + font-weight: 600; + margin: 0; /* remove default section margin */ + padding: 0.25rem 0; /* smaller internal space */ } -.phase-overview li.checked::before { +.phaseOverviewText h3{ + margin: 0; /* removes top/bottom whitespace */ + padding: 0; /* keeps spacing tight */ +} + +.phaseBox h3 { + margin-top: 0; + border-bottom: 1px solid #ddd; + padding-bottom: 0.4rem; +} + +.checked::before { content: '✔️ '; } +/* LOGS */ .logs { grid-area: logs; - background: white; - border-radius: 8px; + background: #fff; padding: 1rem; box-shadow: 0 0 5px rgba(0, 0, 0, 0.1); } @@ -93,38 +127,49 @@ margin-top: 0.5rem; } -.controls-section { +/* FOOTER */ +.controlsSection { grid-area: footer; display: flex; justify-content: space-between; gap: 1rem; - background: white; - border-radius: 8px; + background: #fff; padding: 1rem; box-shadow: 0 0 5px rgba(0, 0, 0, 0.1); } -.gestures, .speech, .direct-speech { +.gestures, +.speech, +.directSpeech { flex: 1; } -.direct-speech .speech-input { +.speechInput { display: flex; margin-top: 0.5rem; } -.direct-speech input { +.speechInput input { flex: 1; padding: 0.5rem; border: 1px solid #ccc; - border-radius: 4px 0 0 4px; } -.direct-speech button { +.speechInput button { background: #007bff; color: white; border: none; padding: 0.5rem 1rem; - border-radius: 0 4px 4px 0; cursor: pointer; } + +/* RESPONSIVE */ +@media (max-width: 900px) { + .phaseOverview { + grid-template-columns: 1fr; + } + + .controlsSection { + flex-direction: column; + } +} diff --git a/src/pages/MonitoringPage/MonitoringPage.tsx b/src/pages/MonitoringPage/MonitoringPage.tsx index b2db6c2..3fe3b24 100644 --- a/src/pages/MonitoringPage/MonitoringPage.tsx +++ b/src/pages/MonitoringPage/MonitoringPage.tsx @@ -1,58 +1,65 @@ import React from 'react'; -import styles from './MonitoringPage.module.css' +import styles from './MonitoringPage.module.css'; export default function MonitoringPage() { return ( -
-
-
+
+ {/* HEADER */} +
+

Experiment Overview

Phase name: Rhyming fish

-
- 1 - 2 - 3 - 4 - 5 +
+ 1 + 2 + 3 + 4 + 5
-
+

Experiment Controls

-
- - - - +
+ + + +
-
+

Connection:

-

● Robot is connected

+

● Robot is connected

-
-
+ {/* MAIN GRID */} + +
+
+

Phase Overview

+
+ +

Goals

    -
  • Convince the RP that you are a fish
  • +
  • Convince the RP that you are a fish
  • Reference Shakespeare
  • Give a compliment
-
+

Triggers

    -
  • Convince the RP that you are a fish
  • +
  • Convince the RP that you are a fish
  • Reference Shakespeare
  • Give a compliment
-
+

Norms

  • Rhyme when talking
  • @@ -60,7 +67,7 @@ export default function MonitoringPage() {
-
+

Conditional Norms

  • “RP is sad” - Be nice
  • @@ -68,19 +75,21 @@ export default function MonitoringPage() {
-