diff --git a/public/index.html b/public/index.html index 477624c..4d54b93 100644 --- a/public/index.html +++ b/public/index.html @@ -8,6 +8,9 @@ + + + JMESPath Testing Tool diff --git a/src/App.css b/src/App.css index 25df4b6..47016dd 100644 --- a/src/App.css +++ b/src/App.css @@ -1,41 +1,29 @@ -.App { - text-align: center; +/* JMESPath Testing Tool Custom Styles */ + +/* Base font family */ +body { + font-family: 'Noto Sans', -apple-system, BlinkMacSystemFont, 'Segoe UI', 'Roboto', 'Oxygen', + 'Ubuntu', 'Cantarell', 'Fira Sans', 'Droid Sans', 'Helvetica Neue', + sans-serif; + -webkit-font-smoothing: antialiased; + -moz-osx-font-smoothing: grayscale; } -.App-logo { - height: 40vmin; - pointer-events: none; +/* Layout structure */ +.vh-100 { + height: 100vh; } -@media (prefers-reduced-motion: no-preference) { - .App-logo { - animation: App-logo-spin infinite 20s linear; - } -} - -.App-header { - background-color: #282c34; - padding: 20px; - color: white; -} - -.App-link { - color: #61dafb; -} - -@keyframes App-logo-spin { - from { - transform: rotate(0deg); - } - to { - transform: rotate(360deg); - } +/* Header section styling - more compact */ +.header-section { + /* Removed gradient background to fix text visibility */ } /* Custom card styling */ .card { border: none; - box-shadow: 0 2px 4px rgba(0,0,0,0.1); + box-shadow: 0 2px 8px rgba(0,0,0,0.1); + border-radius: 8px; } .card-header { @@ -44,7 +32,34 @@ font-weight: 600; } -/* Button hover effects */ +/* Input and textarea styling */ +.jmespath-input { + font-family: 'Noto Sans Mono', 'Consolas', 'Monaco', 'Courier New', monospace; + font-size: 14px; + padding: 10px; + font-weight: 400; +} + +.json-input, .result-output { + font-family: 'Noto Sans Mono', 'Consolas', 'Monaco', 'Courier New', monospace; + font-size: 13px; + background-color: #f8f9fa; + border: 1px solid #dee2e6; + font-weight: 400; + line-height: 1.4; +} + +.json-input.error { + border-color: #dc3545; + background-color: #fff5f5; +} + +.result-output.success { + border-color: #28a745; + background-color: #f0fff4; +} + +/* Button styling */ .btn { transition: all 0.2s ease; } @@ -53,10 +68,24 @@ transform: translateY(-1px); } +/* Footer styling */ +footer { + flex-shrink: 0; +} + +footer a { + color: #6c757d; + transition: color 0.2s ease; +} + +footer a:hover { + color: #495057; +} + /* Responsive adjustments */ @media (max-width: 768px) { .header-section { - padding: 1rem 0; + padding: 1.5rem 0 !important; } .display-4 { @@ -66,4 +95,13 @@ .lead { font-size: 1rem; } + + .btn-sm { + font-size: 0.8rem; + padding: 0.25rem 0.5rem; + } + + .card-body textarea { + min-height: 300px !important; + } } \ No newline at end of file diff --git a/src/App.js b/src/App.js index 0db924d..b5be14f 100644 --- a/src/App.js +++ b/src/App.js @@ -180,32 +180,39 @@ function App() { }; return ( -
- {/* Header Section */} -
+
+ {/* Top Section: Title only */} +
-

JMESPath Testing Tool

-

- Validate and test JMESPath expressions against JSON data in real-time. - Enter your JMESPath query and JSON data below to see the results instantly. -

+

JMESPath Testing Tool

-
-
- {/* JMESPath Expression Input - Middle Section */} -
+ {/* Main Content Section - flex-grow to fill space */} +
+ {/* Description paragraph */} +
+
+

+ Validate and test JMESPath expressions against JSON data in real-time. + Enter your JMESPath query and JSON data below to see the results instantly. +

+
+
+ + {/* Middle Section: JMESPath Expression Input */} +
+
-
-
+
+
JMESPath Expression -
+
+
- {/* Bottom Row - JSON Input and Results */} -
+ {/* Lower Middle Sections: JSON Data (left) and Query Result (right) */} +
+ {/* Lower Middle Left Section: JSON Data Input */} +
-
-
+
+
JSON Data -
+
-
-
+
+