adityasync commited on
Commit
01cb704
·
1 Parent(s): 8960670

feat: Improve responsive layout and prevent horizontal overflow by adding min-width properties and adjusting styles across various breakpoints.

Browse files
Files changed (1) hide show
  1. frontend/styles.css +260 -0
frontend/styles.css CHANGED
@@ -50,6 +50,7 @@ body {
50
  linear-gradient(180deg, #fcfdff 0%, #f3f6fb 100%);
51
  min-height: 100vh;
52
  -webkit-font-smoothing: antialiased;
 
53
  }
54
 
55
  ::-webkit-scrollbar {
@@ -139,6 +140,10 @@ a:focus-visible,
139
  transition: background-color 200ms var(--ease-apple), box-shadow 200ms var(--ease-apple);
140
  }
141
 
 
 
 
 
142
  .brand {
143
  display: inline-flex;
144
  align-items: center;
@@ -245,6 +250,21 @@ a:focus-visible,
245
  margin: 0 auto;
246
  }
247
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
248
  .route-view {
249
  animation: routeFade 320ms var(--ease-apple);
250
  }
@@ -1290,6 +1310,7 @@ a:focus-visible,
1290
  background: rgba(255, 255, 255, 0.9);
1291
  color: var(--text-secondary);
1292
  box-shadow: var(--shadow-sm);
 
1293
  }
1294
 
1295
  .technical-tab.is-active {
@@ -1662,6 +1683,10 @@ a:focus-visible,
1662
  align-items: start;
1663
  }
1664
 
 
 
 
 
1665
  .results-main {
1666
  position: static;
1667
  }
@@ -1676,11 +1701,93 @@ a:focus-visible,
1676
  }
1677
  }
1678
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1679
  @media (max-width: 767px) {
1680
  .app-shell {
1681
  padding: 0 16px 32px;
1682
  }
1683
 
 
 
 
 
 
 
 
 
 
1684
  .nav,
1685
  .topbar__actions .icon-button:not(.mobile-nav-toggle) {
1686
  display: none;
@@ -1694,6 +1801,10 @@ a:focus-visible,
1694
  display: flex;
1695
  }
1696
 
 
 
 
 
1697
  .brand__wordmark {
1698
  height: 44px;
1699
  }
@@ -1704,6 +1815,21 @@ a:focus-visible,
1704
  grid-template-columns: 1fr;
1705
  }
1706
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1707
  .hero h1,
1708
  .page-header h1 {
1709
  font-size: clamp(2.4rem, 12vw, 3.4rem);
@@ -1721,6 +1847,29 @@ a:focus-visible,
1721
  align-items: stretch;
1722
  }
1723
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1724
  .button,
1725
  .button--hero,
1726
  .button--ghost,
@@ -1729,6 +1878,10 @@ a:focus-visible,
1729
  width: 100%;
1730
  }
1731
 
 
 
 
 
1732
  .file-facts,
1733
  .timing-grid,
1734
  .scan-detail-grid,
@@ -1736,11 +1889,118 @@ a:focus-visible,
1736
  grid-template-columns: 1fr;
1737
  }
1738
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1739
  .floating-bar {
1740
  position: static;
 
1741
  }
1742
 
1743
  .history-toolbar {
1744
  flex-direction: column;
1745
  }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1746
  }
 
50
  linear-gradient(180deg, #fcfdff 0%, #f3f6fb 100%);
51
  min-height: 100vh;
52
  -webkit-font-smoothing: antialiased;
53
+ overflow-x: hidden;
54
  }
55
 
56
  ::-webkit-scrollbar {
 
140
  transition: background-color 200ms var(--ease-apple), box-shadow 200ms var(--ease-apple);
141
  }
142
 
143
+ .topbar__inner > * {
144
+ min-width: 0;
145
+ }
146
+
147
  .brand {
148
  display: inline-flex;
149
  align-items: center;
 
250
  margin: 0 auto;
251
  }
252
 
253
+ .page-container,
254
+ .route-view,
255
+ .results-grid,
256
+ .upload-layout,
257
+ .technical-shell,
258
+ .technical-content,
259
+ .history-group,
260
+ .footer-grid,
261
+ .page-header--results,
262
+ .panel-header,
263
+ .history-card,
264
+ .nodule-card {
265
+ min-width: 0;
266
+ }
267
+
268
  .route-view {
269
  animation: routeFade 320ms var(--ease-apple);
270
  }
 
1310
  background: rgba(255, 255, 255, 0.9);
1311
  color: var(--text-secondary);
1312
  box-shadow: var(--shadow-sm);
1313
+ white-space: nowrap;
1314
  }
1315
 
1316
  .technical-tab.is-active {
 
1683
  align-items: start;
1684
  }
1685
 
1686
+ .page-header__actions {
1687
+ width: 100%;
1688
+ }
1689
+
1690
  .results-main {
1691
  position: static;
1692
  }
 
1701
  }
1702
  }
1703
 
1704
+ @media (max-width: 900px) {
1705
+ .topbar__inner {
1706
+ gap: 16px;
1707
+ padding: 12px 16px;
1708
+ }
1709
+
1710
+ .hero {
1711
+ gap: 32px;
1712
+ }
1713
+
1714
+ .hero__visual {
1715
+ min-height: 420px;
1716
+ }
1717
+
1718
+ .section-block {
1719
+ padding-top: 72px;
1720
+ }
1721
+
1722
+ .cta-panel,
1723
+ .upload-focus,
1724
+ .step-card,
1725
+ .stat-card,
1726
+ .feature-card,
1727
+ .card,
1728
+ .history-card,
1729
+ .sample-card {
1730
+ padding: 24px;
1731
+ }
1732
+
1733
+ .page-header {
1734
+ padding: 40px 0 16px;
1735
+ }
1736
+
1737
+ .page-header--results,
1738
+ .risk-banner,
1739
+ .panel-header,
1740
+ .nodule-card__top,
1741
+ .history-card__row,
1742
+ .metric-block__row,
1743
+ .history-card__actions,
1744
+ .modal__footer {
1745
+ flex-direction: column;
1746
+ align-items: flex-start;
1747
+ }
1748
+
1749
+ .risk-banner__metrics {
1750
+ width: 100%;
1751
+ margin-left: 0;
1752
+ display: grid;
1753
+ grid-template-columns: repeat(3, minmax(0, 1fr));
1754
+ gap: 12px;
1755
+ }
1756
+
1757
+ .floating-bar {
1758
+ flex-wrap: wrap;
1759
+ justify-content: flex-start;
1760
+ }
1761
+
1762
+ .scan-stage {
1763
+ min-height: 340px;
1764
+ }
1765
+
1766
+ .metric-table div {
1767
+ grid-template-columns: 1fr;
1768
+ justify-items: start;
1769
+ }
1770
+
1771
+ .code-card__header {
1772
+ flex-direction: column;
1773
+ align-items: flex-start;
1774
+ }
1775
+ }
1776
+
1777
  @media (max-width: 767px) {
1778
  .app-shell {
1779
  padding: 0 16px 32px;
1780
  }
1781
 
1782
+ .topbar {
1783
+ padding: 12px 0;
1784
+ }
1785
+
1786
+ .topbar__inner {
1787
+ padding: 10px 14px;
1788
+ gap: 12px;
1789
+ }
1790
+
1791
  .nav,
1792
  .topbar__actions .icon-button:not(.mobile-nav-toggle) {
1793
  display: none;
 
1801
  display: flex;
1802
  }
1803
 
1804
+ .mobile-nav a {
1805
+ padding: 10px 4px;
1806
+ }
1807
+
1808
  .brand__wordmark {
1809
  height: 44px;
1810
  }
 
1815
  grid-template-columns: 1fr;
1816
  }
1817
 
1818
+ .hero__visual {
1819
+ min-height: 320px;
1820
+ }
1821
+
1822
+ .hero__visual-card {
1823
+ padding: 20px;
1824
+ border-radius: 22px;
1825
+ }
1826
+
1827
+ .hero__symbol {
1828
+ width: 88px;
1829
+ right: 4px;
1830
+ bottom: 12px;
1831
+ }
1832
+
1833
  .hero h1,
1834
  .page-header h1 {
1835
  font-size: clamp(2.4rem, 12vw, 3.4rem);
 
1847
  align-items: stretch;
1848
  }
1849
 
1850
+ .section-block {
1851
+ padding-top: 56px;
1852
+ }
1853
+
1854
+ .step-card,
1855
+ .stat-card,
1856
+ .feature-card,
1857
+ .card,
1858
+ .history-card,
1859
+ .sample-card,
1860
+ .cta-panel,
1861
+ .upload-focus,
1862
+ .modal__header,
1863
+ .modal__body,
1864
+ .modal__footer {
1865
+ padding-left: 18px;
1866
+ padding-right: 18px;
1867
+ }
1868
+
1869
+ .cta-panel {
1870
+ margin-top: 56px;
1871
+ }
1872
+
1873
  .button,
1874
  .button--hero,
1875
  .button--ghost,
 
1878
  width: 100%;
1879
  }
1880
 
1881
+ .button--hero {
1882
+ padding: 0 24px;
1883
+ }
1884
+
1885
  .file-facts,
1886
  .timing-grid,
1887
  .scan-detail-grid,
 
1889
  grid-template-columns: 1fr;
1890
  }
1891
 
1892
+ .upload-zone {
1893
+ min-height: 280px;
1894
+ padding: 28px 20px;
1895
+ }
1896
+
1897
+ .upload-zone h2 {
1898
+ font-size: 28px;
1899
+ }
1900
+
1901
+ .sample-card {
1902
+ flex-direction: column;
1903
+ align-items: flex-start;
1904
+ }
1905
+
1906
+ .analysis-view {
1907
+ min-height: calc(100vh - 140px);
1908
+ }
1909
+
1910
+ .analysis-view h1 {
1911
+ font-size: 28px;
1912
+ }
1913
+
1914
+ .risk-banner {
1915
+ padding: 20px;
1916
+ }
1917
+
1918
+ .risk-banner__identity {
1919
+ align-items: flex-start;
1920
+ }
1921
+
1922
+ .risk-banner__identity h2 {
1923
+ font-size: 24px;
1924
+ }
1925
+
1926
+ .risk-banner__metrics {
1927
+ grid-template-columns: 1fr;
1928
+ }
1929
+
1930
+ .scan-stage {
1931
+ min-height: 260px;
1932
+ }
1933
+
1934
+ .scan-placeholder {
1935
+ padding: 24px 18px;
1936
+ }
1937
+
1938
+ .technical-tabs {
1939
+ display: grid;
1940
+ grid-template-columns: repeat(2, minmax(0, 1fr));
1941
+ }
1942
+
1943
+ .technical-tab {
1944
+ width: 100%;
1945
+ white-space: normal;
1946
+ }
1947
+
1948
+ .metric-table div,
1949
+ .footer-grid,
1950
+ .developer-grid,
1951
+ .media-grid,
1952
+ .media-grid--two {
1953
+ grid-template-columns: 1fr;
1954
+ }
1955
+
1956
+ .modal-backdrop {
1957
+ padding: 16px;
1958
+ align-items: end;
1959
+ }
1960
+
1961
+ .modal {
1962
+ width: 100%;
1963
+ max-height: min(88vh, 760px);
1964
+ }
1965
+
1966
+ .modal__footer {
1967
+ align-items: stretch;
1968
+ }
1969
+
1970
  .floating-bar {
1971
  position: static;
1972
+ padding: 14px;
1973
  }
1974
 
1975
  .history-toolbar {
1976
  flex-direction: column;
1977
  }
1978
+
1979
+ .footer {
1980
+ margin-top: 40px;
1981
+ }
1982
+ }
1983
+
1984
+ @media (max-width: 520px) {
1985
+ .technical-tabs {
1986
+ grid-template-columns: 1fr;
1987
+ }
1988
+
1989
+ .step-badge {
1990
+ width: 64px;
1991
+ height: 64px;
1992
+ margin-bottom: 20px;
1993
+ font-size: 24px;
1994
+ }
1995
+
1996
+ .step-card h3,
1997
+ .feature-card h3 {
1998
+ font-size: 20px;
1999
+ }
2000
+
2001
+ .footer-strip {
2002
+ padding-left: 0;
2003
+ padding-right: 0;
2004
+ line-height: 1.5;
2005
+ }
2006
  }