WebOrbiton
v3.0.0.0

FlatlyPage

126 lines · 4.8 KB
  1. <!-- Powered by Renderion Engine -->
  2. <!DOCTYPE html>
  3. <html lang="en" data-cms="flatlypage">
  4. ​
  5. <head>
  6. <meta charset="UTF-8">
  7. <meta name="viewport" content="width=device-width, initial-scale=1.0">
  8. <?php $domain = $_SERVER['HTTP_HOST'] ?? 'localhost';
  9. $domain = preg_replace('/[^a-z0-9\.\-]/i', '', $domain);
  10. $domain = ucfirst(strtolower($domain)); ?>
  11. <title><?= htmlspecialchars($domain, ENT_QUOTES, 'UTF-8') ?>: Renderion Engine</title> <!-- Dynamically added -->
  12. <link rel="icon" href="renderion.ico?v=<?= filemtime(__DIR__ . '/../engine/renderion.ico') ?>" type="image/x-icon">
  13. <meta name="generator" content="FlatlyPage CMS">
  14. <meta name="author" content="FlatlyPage Team">
  15. <meta name="robots" content="noindex, nofollow">
  16. ​
  17. <link rel="stylesheet" href="../css/styles.css?v=<?= filemtime('filename'); ?>">
  18. <?php if (is_file(__DIR__ . "/../css/theme.css")): ?><link rel="stylesheet" href="/css/theme.css?v=<?= date("YmdH") ?>"><?php endif; ?>
  19. ​
  20. <style>
  21. body {
  22. font-family: 'Inter', -apple-system, BlinkMacSystemFont, sans-serif;
  23. }
  24. </style>
  25. ​
  26. </head>
  27. ​
  28. <body>
  29. ​
  30. <main>
  31. ​
  32. <section class="hero" id="hero-1">
  33. <div class="hero-grid"></div>
  34. <div class="container hero-content">
  35. <div class="badge"><span class="badge-dot"></span><span>Your CMS Engine</span></div>
  36. <h1>Renderion Engine</h1>
  37. <p>This website is proudly powered and built using the Renderion Engine and the FlatlyPage CMS.</p>
  38. </div>
  39. </section>
  40. ​
  41. </main>
  42. ​
  43. <footer class="footer">
  44. <div class="container">
  45. <div class="footer-brand">
  46. <h3>
  47. FlatlyPage CMS
  48. </h3>
  49. <p>Build websites faster and easier.</p>
  50. </div>
  51. <div class="footer-bottom">
  52. <div style="flex: 1;">
  53. <p>© 2026 FlatlyPage CMS. All rights reserved.</p>
  54. </div>
  55. <button class="theme-toggle" aria-label="Toggle theme" title="Toggle light/dark theme">
  56. <svg class="theme-icon-sun" viewBox="0 0 24 24" style="display: none;">
  57. <circle cx="12" cy="12" r="5" />
  58. <line x1="12" y1="1" x2="12" y2="3" />
  59. <line x1="12" y1="21" x2="12" y2="23" />
  60. <line x1="4.22" y1="4.22" x2="5.64" y2="5.64" />
  61. <line x1="18.36" y1="18.36" x2="19.78" y2="19.78" />
  62. <line x1="1" y1="12" x2="3" y2="12" />
  63. <line x1="21" y1="12" x2="23" y2="12" />
  64. <line x1="4.22" y1="19.78" x2="5.64" y2="18.36" />
  65. <line x1="18.36" y1="5.64" x2="19.78" y2="4.22" />
  66. </svg>
  67. <svg class="theme-icon-moon" viewBox="0 0 24 24" style="display: block;">
  68. <path d="M21 12.79A9 9 0 1 1 11.21 3 7 7 0 0 0 21 12.79z" />
  69. </svg>
  70. </button>
  71. </div>
  72. </div>
  73. </footer>
  74. ​
  75. <script>
  76. const themeToggle = document.querySelector('.theme-toggle');
  77. const sunIcon = document.querySelector('.theme-icon-sun');
  78. const moonIcon = document.querySelector('.theme-icon-moon');
  79. const html = document.documentElement;
  80. ​
  81. function initTheme() {
  82. let theme = localStorage.getItem('theme');
  83. if (!theme) {
  84. const prefersDark = window.matchMedia('(prefers-color-scheme: dark)').matches;
  85. theme = prefersDark ? 'dark' : 'light';
  86. }
  87. setTheme(theme);
  88. }
  89. ​
  90. function setTheme(theme) {
  91. if (theme === 'light') {
  92. html.setAttribute('data-theme', 'light');
  93. sunIcon.style.display = 'block';
  94. moonIcon.style.display = 'none';
  95. localStorage.setItem('theme', 'light');
  96. } else {
  97. html.removeAttribute('data-theme');
  98. sunIcon.style.display = 'none';
  99. moonIcon.style.display = 'block';
  100. localStorage.setItem('theme', 'dark');
  101. }
  102. }
  103. ​
  104. function toggleTheme() {
  105. const currentTheme = html.getAttribute('data-theme') || 'dark';
  106. const newTheme = currentTheme === 'light' ? 'dark' : 'light';
  107. setTheme(newTheme);
  108. }
  109. ​
  110. if (themeToggle) {
  111. themeToggle.addEventListener('click', toggleTheme);
  112. }
  113. ​
  114. initTheme();
  115. ​
  116. document.querySelectorAll('.mobile-nav a').forEach(link => {
  117. link.addEventListener('click', () => {
  118. document.querySelector('.mobile-nav').classList.remove('active');
  119. });
  120. });
  121. </script>
  122. ​
  123. ​
  124. </body>
  125. ​
  126. </html>