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
-
+
-
-
+
+
- {jsonError && (
-
- {jsonError}
-
- )}
+ {jsonError && (
+
+ {jsonError}
+
+ )}
- {/* Results Output - Bottom Right */}
-
+ {/* Lower Middle Right Section: Query Results Output */}
+
-
-
+
+
Query Result
-
+
-
-
+
@@ -311,6 +323,27 @@ function App() {
+
+ {/* Bottom Section: Footer */}
+
+
+
+
+
+ JMESPath Testing Tool - Created for testing and validating JMESPath expressions
+
+
+
+
+
+
);
}