You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@fineract.apache.org by jd...@apache.org on 2025/02/05 20:11:51 UTC
(fineract-site) 01/01: Revert "Enhanced Website UI with Modern Animations and Interactions and Fix:Binary Download & Source Download Links"
This is an automated email from the ASF dual-hosted git repository.
jdailey pushed a commit to branch revert-35-asf-site
in repository https://gitbox.apache.org/repos/asf/fineract-site.git
commit 310b5ad6c186bbddd2c0cca5588e0477360cf133
Author: James D <15...@users.noreply.github.com>
AuthorDate: Wed Feb 5 12:11:46 2025 -0800
Revert "Enhanced Website UI with Modern Animations and Interactions and Fix:Binary Download & Source Download Links"
---
css/fineract.css | 711 +--------------------
index.html | 1852 ++++++------------------------------------------------
2 files changed, 218 insertions(+), 2345 deletions(-)
diff --git a/css/fineract.css b/css/fineract.css
index d2143ee..f5bb768 100644
--- a/css/fineract.css
+++ b/css/fineract.css
@@ -37,31 +37,33 @@ html {
}
.side-nav li:hover {
- background-color: transparent;
+ background-color: #f8f8ff;
}
.jet {
- background-color: var(--nav-bg);
+ background-color: #343434;
}
.jet-text {
- color: var(--text-color);
+ color: #343434;
}
.jet-hover:hover {
- background-color: transparent;
+ background-color: #343434;
+ color: #f8f8ff;
}
.ghost-white {
- background-color: var(--primary-bg);
+ background-color: #f8f8ff;
}
.ghost-white-text {
- color: var(--nav-text);
+ color: #f8f8ff;
}
.ghost-white-hover:hover {
- background-color: transparent;
+ background-color: #f8f8ff;
+ color: #343434;
}
.side-nav li {
@@ -75,23 +77,21 @@ html {
.divider {
border: 0;
height: 1px;
- background: var(--nav-bg);
- background-image: linear-gradient(to right, var(--primary-bg), var(--nav-bg), var(--primary-bg));
+ background: #343434;
+ background-image: linear-gradient(to right, #f8f8ff, #343434, #f8f8ff);
}
.divider-inverse {
- background: var(--primary-bg);
- background-image: linear-gradient(to right, var(--nav-bg), var(--primary-bg), var(--nav-bg));
+ background: #f8f8ff;
+ background-image: linear-gradient(to right, #343434, #f8f8ff, #343434);
}
.link-inverse {
- color: var(--nav-text);
- transition: opacity 0.2s ease;
+ color: #f8f8ff;
}
.link-inverse:hover {
- opacity: 0.9;
- color: var(--nav-text);
+ color: #039BE5;
}
.circle-list-style {
@@ -101,459 +101,8 @@ html {
}
footer.page-footer {
- background-color: var(--nav-bg);
- color: var(--nav-text);
-}
-
-/* Theme-aware transitions */
-* {
- transition: background-color 0.3s ease, color 0.3s ease, border-color 0.3s ease, box-shadow 0.3s ease;
-}
-
-/* Base styles with theme variables */
-body {
- background-color: var(--primary-bg);
- color: var(--text-color);
-}
-
-nav {
- background-color: var(--nav-bg);
- color: var(--nav-text);
-}
-
-/* Card styles */
-.card-panel {
- background-color: var(--card-bg);
- color: var(--text-color);
- border: 1px solid var(--border-color);
- box-shadow: 0 2px 4px var(--card-shadow);
-}
-
-/* Notice panels */
-.card-panel.yellow.lighten-4 {
- background-color: var(--warning-bg);
- color: var(--warning-text);
-}
-
-.card-panel.red.lighten-5 {
- background-color: var(--danger-bg);
- color: var(--danger-text);
-}
-
-/* Text and headings */
-h3, h4, h5, h6 {
- color: var(--text-color);
-}
-
-.flow-text {
- color: var(--text-color);
-}
-
-/* Links */
-a {
- color: var(--link-color);
- transition: opacity 0.2s ease;
-}
-
-a:hover {
- opacity: 0.9;
-}
-
-/* List items */
-.collection .collection-item {
- background-color: var(--card-bg);
- color: var(--text-color);
- border-color: var(--border-color);
-}
-
-/* Icons */
-.material-icons {
- color: var(--link-color);
-}
-
-/* Theme toggle positioning */
-.nav-links {
- display: flex;
- align-items: center;
-}
-
-.theme-toggle {
- margin-left: auto;
- display: flex;
- align-items: center;
- cursor: pointer;
- opacity: 1;
- transition: opacity 0.2s ease;
-}
-
-.theme-toggle i {
- transition: transform 0.5s cubic-bezier(0.4, 0, 0.2, 1);
-}
-
-[data-theme="dark"] .theme-toggle i {
- transform: rotate(180deg);
-}
-
-.theme-toggle:hover {
- opacity: 0.9;
-}
-
-/* Solution Providers section */
-.solution-providers {
- padding: 3rem 0;
- background-color: var(--card-bg);
- border-radius: 8px;
- margin: 2rem 0;
-}
-
-[data-theme="dark"] .solution-providers {
- background: linear-gradient(
- 145deg,
- rgba(0, 0, 0, 0.4) 0%,
- rgba(0, 0, 0, 0.2) 100%
- );
- border: 1px solid rgba(255, 255, 255, 0.1);
-}
-
-.solution-providers h3 {
- color: var(--text-color);
- font-size: 2.2rem;
- margin-bottom: 1.5rem;
- text-align: center;
-}
-
-[data-theme="dark"] .solution-providers h3 {
- color: rgba(255, 255, 255, 0.95);
- text-shadow: 0 2px 4px rgba(0, 0, 0, 0.3);
-}
-
-.solution-providers .intro-text {
- color: var(--text-color);
- font-size: 1.2rem;
- line-height: 1.6;
- text-align: center;
- max-width: 800px;
- margin: 0 auto 3rem;
-}
-
-[data-theme="dark"] .solution-providers .intro-text {
- color: rgba(255, 255, 255, 0.9);
-}
-
-.features-grid {
- display: grid;
- grid-template-columns: repeat(auto-fit, minmax(280px, 1fr));
- gap: 2rem;
- padding: 0 2rem;
-}
-
-.feature-card {
- background-color: var(--secondary-bg);
- border-radius: 12px;
- padding: 2rem;
- text-align: center;
- transition: transform 0.3s ease, box-shadow 0.3s ease;
- border: 1px solid var(--border-color);
-}
-
-[data-theme="dark"] .feature-card {
- background: linear-gradient(
- 145deg,
- rgba(255, 255, 255, 0.08) 0%,
- rgba(255, 255, 255, 0.03) 100%
- );
- border: 1px solid rgba(255, 255, 255, 0.1);
- box-shadow: 0 4px 20px rgba(0, 0, 0, 0.2);
-}
-
-.feature-card:hover {
- transform: translateY(-5px);
-}
-
-[data-theme="dark"] .feature-card:hover {
- box-shadow: 0 8px 30px rgba(0, 0, 0, 0.3);
- border-color: rgba(255, 255, 255, 0.2);
-}
-
-.feature-card i {
- font-size: 3rem;
- margin-bottom: 1.5rem;
- color: var(--link-color);
-}
-
-[data-theme="dark"] .feature-card i {
- color: var(--link-color);
- text-shadow: 0 0 20px rgba(var(--link-color-rgb), 0.3);
-}
-
-.feature-card h4 {
- color: var(--text-color);
- font-size: 1.5rem;
- margin-bottom: 1rem;
- font-weight: 600;
-}
-
-[data-theme="dark"] .feature-card h4 {
- color: rgba(255, 255, 255, 0.95);
- text-shadow: 0 2px 4px rgba(0, 0, 0, 0.2);
-}
-
-.feature-card p {
- color: var(--text-color);
- font-size: 1.1rem;
- line-height: 1.5;
- margin: 0;
-}
-
-[data-theme="dark"] .feature-card p {
- color: rgba(255, 255, 255, 0.85);
-}
-
-/* Dividers */
-.divider {
- border: 0;
- height: 1px;
- background: var(--text-color);
- opacity: 0.2;
-}
-
-/* Subtle button transitions */
-.btn, .btn-large {
- background-color: var(--link-color);
- color: var(--nav-text);
- transition: background-color 0.2s ease, box-shadow 0.2s ease;
-}
-
-.btn:hover, .btn-large:hover {
- background-color: var(--link-color);
- opacity: 0.9;
- box-shadow: 0 2px 4px var(--card-shadow);
-}
-
-/* Gentle link transitions */
-.link-inverse {
- color: var(--nav-text);
- transition: opacity 0.2s ease;
-}
-
-.link-inverse:hover {
- opacity: 0.9;
-}
-
-/* Subtle card transitions */
-.card-panel {
- background-color: var(--card-bg);
- color: var(--text-color);
- border: 1px solid var(--border-color);
- box-shadow: 0 2px 4px var(--card-shadow);
- transition: box-shadow 0.2s ease;
-}
-
-.card-panel:hover {
- box-shadow: 0 4px 8px var(--card-shadow);
-}
-
-/* Navigation transitions */
-.nav-link {
- transition: opacity 0.2s ease;
- position: relative;
-}
-
-.nav-link:hover {
- opacity: 0.9;
-}
-
-/* Smooth section transitions */
-.section {
- transition: opacity 0.3s ease;
-}
-
-/* Table row subtle highlight */
-table.highlight > tbody > tr {
- transition: background-color 0.2s ease;
-}
-
-table.highlight > tbody > tr:hover {
- background-color: var(--hover-bg);
-}
-
-/* Collection item subtle interaction */
-.collection .collection-item {
- background-color: var(--card-bg);
- color: var(--text-color);
- border-color: var(--border-color);
- transition: background-color 0.2s ease;
-}
-
-.collection .collection-item:hover {
- background-color: var(--hover-bg);
-}
-
-/* Verification section styles */
-.verification-section {
- padding: 1rem;
- margin: 1rem 0;
- border-radius: 6px;
- background-color: var(--card-bg);
- border: 1px solid var(--border-color);
-}
-
-.verification-section h4 {
- font-size: 1.1rem;
- margin: 0 0 0.5rem 0;
- display: flex;
- align-items: center;
- color: var(--text-color);
-}
-
-.verification-section h4 i {
- font-size: 1.1rem;
- margin-right: 0.5rem;
-}
-
-.verification-methods {
- display: grid;
- grid-template-columns: repeat(auto-fit, minmax(200px, 1fr));
- gap: 1rem;
- margin: 0.75rem 0;
-}
-
-.verification-method {
- padding: 0.75rem;
- border-radius: 4px;
- background-color: var(--secondary-bg);
- border: 1px solid var(--border-color);
-}
-
-.method-header {
- display: flex;
- align-items: center;
- margin-bottom: 0.5rem;
-}
-
-.method-header i {
- font-size: 1rem;
- margin-right: 0.5rem;
- color: var(--link-color);
-}
-
-.method-header h5 {
- margin: 0;
- font-size: 1rem;
- font-weight: 500;
-}
-
-.verification-method p {
- margin: 0;
- font-size: 0.9rem;
- line-height: 1.4;
- opacity: 0.9;
-}
-
-.verification-guide {
- margin-top: 0.75rem;
- padding-top: 0.75rem;
- border-top: 1px solid var(--border-color);
- font-size: 0.9rem;
-}
-
-.verification-guide p {
- margin: 0;
-}
-
-.guide-link {
- font-size: 0.9rem;
-}
-
-.guide-link i {
- font-size: 0.9rem;
- vertical-align: middle;
-}
-
-[data-theme="dark"] .verification-section {
- background: linear-gradient(
- 145deg,
- rgba(255, 255, 255, 0.05) 0%,
- rgba(255, 255, 255, 0.02) 100%
- );
-}
-
-[data-theme="dark"] .verification-method {
- background: rgba(255, 255, 255, 0.03);
-}
-
-/* Downloads table styles */
-.downloads-table {
- background-color: var(--card-bg);
- border-radius: 8px;
- border: 1px solid var(--border-color);
- margin: 2rem 0;
-}
-
-.downloads-table table {
- width: 100%;
- border-collapse: separate;
- border-spacing: 0;
-}
-
-.downloads-table th {
- background-color: var(--secondary-bg);
- color: var(--text-color);
- font-weight: 600;
- padding: 1rem;
- text-align: left;
- border-bottom: 2px solid var(--border-color);
-}
-
-.downloads-table td {
- padding: 1rem;
- color: var(--text-color);
- border-bottom: 1px solid var(--border-color);
- background-color: var(--secondary-bg);
-}
-
-.downloads-table tr:last-child td {
- border-bottom: none;
-}
-
-.downloads-table tr:hover td {
- background-color: var(--hover-bg);
-}
-
-[data-theme="dark"] .downloads-table td {
- background-color: rgba(255, 255, 255, 0.03);
-}
-
-[data-theme="dark"] .downloads-table th {
- background-color: rgba(255, 255, 255, 0.05);
- border-bottom-color: rgba(255, 255, 255, 0.1);
-}
-
-[data-theme="dark"] .downloads-table tr:hover td {
- background-color: rgba(255, 255, 255, 0.07);
-}
-
-.downloads-table a {
- color: var(--link-color);
- text-decoration: none;
- transition: opacity 0.2s ease;
-}
-
-.downloads-table a:hover {
- opacity: 0.8;
-}
-
-/* File type indicators */
-.downloads-table .file-type {
- color: var(--text-color);
- opacity: 0.8;
- font-size: 0.9em;
-}
-
-/* Version column */
-.downloads-table .version-col {
- font-weight: 500;
- color: var(--text-color);
+ background-color: #343434;
+ color: #f8f8ff;
}
@media screen and (max-width: 992px) {
@@ -569,229 +118,3 @@ table.highlight > tbody > tr:hover {
height: 45px;
}
}
-
-@media (max-width: 768px) {
- .features-grid {
- grid-template-columns: 1fr;
- padding: 0 1rem;
- }
-
- .solution-providers {
- padding: 2rem 0;
- }
-
- .solution-providers h3 {
- font-size: 1.8rem;
- }
-}
-
-/* Base styles and CSS reset */
-*, *::before, *::after {
- box-sizing: border-box;
- -webkit-font-smoothing: antialiased;
- -moz-osx-font-smoothing: grayscale;
-}
-
-html {
- font-size: 16px;
- scroll-behavior: smooth;
- height: 100%;
-}
-
-body {
- margin: 0;
- padding: 0;
- min-height: 100vh;
- background-color: var(--primary-bg);
- color: var(--text-color);
- font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Oxygen-Sans, Ubuntu, Cantarell, 'Helvetica Neue', sans-serif;
- line-height: 1.6;
- overflow-x: hidden;
- -webkit-text-size-adjust: 100%;
- -webkit-tap-highlight-color: transparent;
-}
-
-/* Layout Container */
-.container {
- width: 100%;
- max-width: 1400px;
- margin: 0 auto;
- padding: 0 2rem;
-}
-
-@media (min-width: 1600px) {
- .container {
- max-width: 1600px;
- }
-}
-
-/* Navigation Optimization */
-.nav-wrapper {
- display: flex;
- align-items: center;
- justify-content: space-between;
- padding: 0.5rem 1rem;
- height: 64px;
- position: fixed;
- top: 0;
- left: 0;
- right: 0;
- z-index: 1000;
- backdrop-filter: blur(10px);
- -webkit-backdrop-filter: blur(10px);
- transition: background-color 0.3s ease;
-}
-
-.nav-links {
- display: flex;
- align-items: center;
- gap: 1.5rem;
-}
-
-/* Section Layout */
-.section {
- padding: 4rem 0;
- margin: 2rem 0;
- opacity: 1;
- transform: translateY(0);
- transition: opacity 0.5s ease, transform 0.5s ease;
-}
-
-.section.hidden {
- opacity: 0;
- transform: translateY(20px);
-}
-
-/* Grid System */
-.grid {
- display: grid;
- grid-template-columns: repeat(12, 1fr);
- gap: 2rem;
-}
-
-/* Responsive Images */
-img {
- max-width: 100%;
- height: auto;
- display: block;
-}
-
-/* Typography Scale */
-h1 { font-size: clamp(2.5rem, 5vw, 4rem); }
-h2 { font-size: clamp(2rem, 4vw, 3rem); }
-h3 { font-size: clamp(1.5rem, 3vw, 2.5rem); }
-h4 { font-size: clamp(1.25rem, 2vw, 2rem); }
-
-/* Card Components */
-.card {
- background: var(--card-bg);
- border-radius: 12px;
- padding: 2rem;
- transition: transform 0.3s ease, box-shadow 0.3s ease;
- will-change: transform;
- transform: translateZ(0);
- backface-visibility: hidden;
-}
-
-/* Performance Optimizations */
-.hardware-accelerated {
- transform: translateZ(0);
- backface-visibility: hidden;
- perspective: 1000px;
-}
-
-/* Cross-browser Flexbox */
-.flex {
- display: -webkit-box;
- display: -ms-flexbox;
- display: flex;
-}
-
-.flex-wrap {
- -ms-flex-wrap: wrap;
- flex-wrap: wrap;
-}
-
-/* Desktop Optimizations */
-@media (min-width: 1024px) {
- .desktop-grid {
- display: grid;
- grid-template-columns: repeat(auto-fit, minmax(300px, 1fr));
- gap: 2rem;
- }
-
- .desktop-sidebar {
- position: sticky;
- top: 80px;
- height: calc(100vh - 80px);
- overflow-y: auto;
- }
-
- .desktop-content {
- flex: 1;
- max-width: calc(100% - 300px);
- }
-
- .desktop-nav {
- height: 80px;
- }
-}
-
-/* Print Styles */
-@media print {
- .no-print {
- display: none !important;
- }
-
- body {
- color: #000;
- background: #fff;
- }
-
- a {
- text-decoration: underline;
- }
-}
-
-/* Accessibility */
-@media (prefers-reduced-motion: reduce) {
- * {
- animation-duration: 0.01ms !important;
- animation-iteration-count: 1 !important;
- transition-duration: 0.01ms !important;
- scroll-behavior: auto !important;
- }
-}
-
-.visually-hidden {
- position: absolute;
- width: 1px;
- height: 1px;
- padding: 0;
- margin: -1px;
- overflow: hidden;
- clip: rect(0, 0, 0, 0);
- white-space: nowrap;
- border: 0;
-}
-
-/* Dark Mode Optimizations */
-[data-theme="dark"] {
- color-scheme: dark;
-}
-
-/* High Contrast Mode */
-@media (forced-colors: active) {
- * {
- border-color: ButtonText;
- }
-}
-
-/* Touch Device Optimizations */
-@media (hover: none) {
- .touch-scroll {
- -webkit-overflow-scrolling: touch;
- overflow-x: auto;
- scroll-snap-type: x mandatory;
- }
-}
diff --git a/index.html b/index.html
index 23a29b9..452337e 100644
--- a/index.html
+++ b/index.html
@@ -35,1143 +35,248 @@
<div class="nav-wrapper">
<div class="container">
<a href="#top" class="brand-logo">
- <div class="logo-wrapper">
- <div class="logo-container">
- <img class="logo-img" src="images/apache-fineract-logo.png" alt="Apache Fineract Logo"/>
- <div class="brand-text">
- <span class="brand-name">Apache Fineract®</span>
- </div>
- </div>
- </div>
+ <img class="logo" src="images/apache-fineract-logo.png" alt="Fineract Logo"/>
+ <span class="brand">Apache Fineract®</span>
+ <img referrerpolicy="no-referrer-when-downgrade" src="https://static.scarf.sh/a.png?x-pxid=2067fdb9-816d-461c-8713-bfb6cd8bb098" />
</a>
<a href="#" data-activates="mobile-menu" class="button-collapse"><i class="material-icons">menu</i></a>
-
- <ul class="right hide-on-med-and-down nav-links">
- <li>
- <a class="nav-link" href="#about">
- <i class="material-icons left">info</i>About
- </a>
- </li>
- <li>
- <a class="nav-link" href="#contribute">
- <i class="material-icons left">people</i>Contribute
- </a>
- </li>
- <li>
- <a class="nav-link" href="#downloads">
- <i class="material-icons left">download</i>Downloads
- </a>
- </li>
- <li>
- <a class="nav-link" href="#resources">
- <i class="material-icons left">library_books</i>Resources
- </a>
- </li>
- <li>
- <a class="nav-link" href="#reference">
- <i class="material-icons left">link</i>Reference
- </a>
- </li>
- <li>
- <a class="nav-link theme-toggle" href="#" onclick="toggleTheme()">
- <i class="material-icons">dark_mode</i>
- </a>
- </li>
+ <ul class="right hide-on-med-and-down">
+ <li><a class="ghost-white-hover" href="#about">About</a></li>
+ <li><a class="ghost-white-hover" href="#contribute">Contribute</a></li>
+ <li><a class="ghost-white-hover" href="#downloads">Downloads</a></li>
+ <li><a class="ghost-white-hover" href="#resources">Resources</a></li>
+ <li><a class="ghost-white-hover" href="#reference">Reference</a></li>
</ul>
-
<ul class="side-nav ghost-white jet-text" id="mobile-menu">
- <li class="side-nav-header">
- <div class="logo-container">
- <img class="logo" src="images/apache-fineract-logo.png" alt="Fineract Logo"/>
- <span class="brand">Apache Fineract®</span>
- </div>
- </li>
- <li><div class="divider"></div></li>
- <li>
- <a class="side-nav-link" href="#about" onclick="closeSideNav()">
- <i class="material-icons left">info</i>About
- </a>
- </li>
- <li>
- <a class="side-nav-link" href="#contribute" onclick="closeSideNav()">
- <i class="material-icons left">people</i>Contribute
- </a>
- </li>
- <li>
- <a class="side-nav-link" href="#downloads" onclick="closeSideNav()">
- <i class="material-icons left">download</i>Downloads
- </a>
- </li>
- <li>
- <a class="side-nav-link" href="#resources" onclick="closeSideNav()">
- <i class="material-icons left">library_books</i>Resources
- </a>
- </li>
- <li>
- <a class="side-nav-link" href="#reference" onclick="closeSideNav()">
- <i class="material-icons left">link</i>Reference
- </a>
- </li>
+ <li class="side-nav-heading">Apache Fineract®</li>
+ <li><a class="jet-hover" href="#about" onclick="closeSideNav()">About</a></li>
+ <li><a class="jet-hover" href="#contribute" onclick="closeSideNav()">Contribute</a></li>
+ <li><a class="jet-hover" href="#downloads" onclick="closeSideNav()">Downloads</a></li>
+ <li><a class="jet-hover" href="#resources" onclick="closeSideNav()">Resources</a></li>
+ <li><a class="jet-hover" href="#reference" onclick="closeSideNav()">Reference</a></li>
</ul>
</div>
</div>
</nav>
</div>
-
- <style>
- .navbar-fixed {
- height: 72px;
- }
-
- .nav-wrapper {
- padding: 0 15px;
- }
-
- /* Logo Styles */
- .logo-wrapper {
- display: flex;
- align-items: center;
- height: 72px;
- padding: 5px 0;
- }
-
- .logo-container {
- display: flex;
- align-items: center;
- gap: 15px;
- }
-
- .logo-img {
- height: 52px;
- width: auto;
- margin: 0;
- }
-
- .brand-text {
- display: flex;
- flex-direction: column;
- justify-content: center;
- }
-
- .brand-name {
- font-size: 1.8rem;
- font-weight: 700;
- color: #ffffff;
- line-height: 1.2;
- letter-spacing: 0.5px;
- text-shadow: 1px 1px 2px rgba(0, 0, 0, 0.1);
- }
-
- /* Responsive adjustments */
- @media only screen and (max-width: 992px) {
- .brand-logo {
- transform: translateX(-50%);
- left: 50%;
- }
-
- .logo-img {
- height: 46px;
- }
-
- .brand-name {
- font-size: 1.6rem;
- }
- }
-
- @media only screen and (max-width: 600px) {
- .logo-img {
- height: 40px;
- }
-
- .brand-name {
- font-size: 1.4rem;
- }
- }
-
- /* Rest of the existing styles */
- .nav-links li {
- margin: 0 5px;
- }
-
- .nav-link {
- display: flex;
- align-items: center;
- padding: 0 15px;
- height: 72px;
- border-bottom: 3px solid transparent;
- }
-
- .nav-link {
- background-color: transparent;
- }
-
- .nav-link i {
- margin-right: 8px;
- }
-
- .side-nav-header {
- padding: 20px 15px;
- background-color: #343434;
- }
-
- .side-nav-header .logo-container {
- flex-direction: column;
- align-items: center;
- }
-
- .side-nav-header .brand {
- color: white;
- margin-top: 10px;
- text-align: center;
- }
-
- .side-nav-link {
- display: flex !important;
- align-items: center;
- padding: 15px !important;
- height: auto !important;
- }
-
- .side-nav-link i {
- margin-right: 15px !important;
- color: #26a69a;
- }
- </style>
</header>
- <div class="cube-loader">
- <div class="cube">
- <div class="face front"></div>
- <div class="face back"></div>
- <div class="face right"></div>
- <div class="face left"></div>
- <div class="face top"></div>
- <div class="face bottom"></div>
- <div class="inner-cube">
- <div class="face front"></div>
- <div class="face back"></div>
- <div class="face right"></div>
- <div class="face left"></div>
- <div class="face top"></div>
- <div class="face bottom"></div>
- </div>
- </div>
- </div>
-
- <style>
- .cube-loader {
- position: fixed;
- top: 50%;
- left: 50%;
- transform: translate(-50%, -50%);
- width: 120px;
- height: 120px;
- perspective: 1000px;
- display: none; /* Hidden by default, show with .show class */
- }
-
- .cube-loader.show {
- display: block;
- }
-
- .cube {
- position: relative;
- width: 100%;
- height: 100%;
- transform-style: preserve-3d;
- animation: rotate 4s infinite linear;
- }
-
- .cube .face {
- position: absolute;
- width: 100%;
- height: 100%;
- background: rgba(186, 0, 143, 0.9);
- border: 2px solid rgba(186, 0, 143, 1);
- box-sizing: border-box;
- }
-
- .inner-cube {
- position: absolute;
- width: 60%;
- height: 60%;
- top: 20%;
- left: 20%;
- transform-style: preserve-3d;
- }
-
- .inner-cube .face {
- background: rgba(0, 119, 190, 0.9);
- border: 2px solid rgba(0, 119, 190, 1);
- }
-
- .inner-cube::after {
- content: '';
- position: absolute;
- width: 40%;
- height: 40%;
- top: 30%;
- left: 30%;
- background: rgba(141, 198, 63, 0.9);
- border: 2px solid rgba(141, 198, 63, 1);
- transform: translateZ(0);
- }
-
- /* Face Transformations */
- .cube .face.front { transform: rotateY(0deg) translateZ(60px); }
- .cube .face.back { transform: rotateY(180deg) translateZ(60px); }
- .cube .face.right { transform: rotateY(90deg) translateZ(60px); }
- .cube .face.left { transform: rotateY(-90deg) translateZ(60px); }
- .cube .face.top { transform: rotateX(90deg) translateZ(60px); }
- .cube .face.bottom { transform: rotateX(-90deg) translateZ(60px); }
-
- .inner-cube .face.front { transform: rotateY(0deg) translateZ(36px); }
- .inner-cube .face.back { transform: rotateY(180deg) translateZ(36px); }
- .inner-cube .face.right { transform: rotateY(90deg) translateZ(36px); }
- .inner-cube .face.left { transform: rotateY(-90deg) translateZ(36px); }
- .inner-cube .face.top { transform: rotateX(90deg) translateZ(36px); }
- .inner-cube .face.bottom { transform: rotateX(-90deg) translateZ(36px); }
-
- @keyframes rotate {
- 0% {
- transform: rotateX(0deg) rotateY(0deg);
- }
- 100% {
- transform: rotateX(360deg) rotateY(360deg);
- }
- }
-
- /* Add shadow effect */
- .cube-loader::after {
- content: '';
- position: absolute;
- bottom: -20px;
- left: 50%;
- transform: translateX(-50%);
- width: 85%;
- height: 10px;
- background: rgba(0, 0, 0, 0.2);
- border-radius: 50%;
- filter: blur(5px);
- animation: shadow 4s infinite linear;
- }
-
- @keyframes shadow {
- 0%, 100% {
- transform: translateX(-50%) scale(1);
- opacity: 0.4;
- }
- 50% {
- transform: translateX(-50%) scale(1.2);
- opacity: 0.2;
- }
- }
- </style>
-
- <script>
- // Function to show/hide loader
- function showLoader() {
- document.querySelector('.cube-loader').classList.add('show');
- }
-
- function hideLoader() {
- document.querySelector('.cube-loader').classList.remove('show');
- }
- </script>
<main class="container">
<section class="section">
<h3 class="center-align">Platform for Digital Financial Services</h3>
-
- <div class="row">
- <div class="col s12">
- <div class="card-panel">
- <h4><i class="material-icons left">account_balance</i>What is Apache Fineract?</h4>
- <p class="flow-text justify-align">
- Apache Fineract® (\’fīn-,ә-,rakt\) is open source software for financial services, designed to create a cloud-ready
- core banking system that enables digital financial services for everyone, including the unbanked and underbanked.
- </p>
- </div>
- </div>
- </div>
-
- <div class="row">
- <div class="col s12 m6">
- <div class="card-panel">
- <h4><i class="material-icons left">rocket_launch</i>Our Mission</h4>
- <div class="mission-points">
- <div class="mission-item">
- <i class="material-icons">cloud_done</i>
- <p>Build and maintain a cloud-ready core banking system</p>
- </div>
- <div class="mission-item">
- <i class="material-icons">security</i>
- <p>Ensure robust, scalable, and secure operations</p>
- </div>
- <div class="mission-item">
- <i class="material-icons">accessibility_new</i>
- <p>Promote financial inclusion worldwide</p>
- </div>
- <div class="mission-item">
- <i class="material-icons">savings</i>
- <p>Enable digital transaction accounts for all</p>
- </div>
- </div>
- </div>
- </div>
-
- <div class="col s12 m6">
- <div class="card-panel">
- <h4><i class="material-icons left">stars</i>Key Benefits</h4>
- <div class="benefits-list">
- <div class="benefit-item">
- <i class="material-icons">verified</i>
- <div class="benefit-content">
- <h5>Reliable</h5>
- <p>Proven track record in high-transaction environments</p>
- </div>
- </div>
- <div class="benefit-item">
- <i class="material-icons">trending_up</i>
- <div class="benefit-content">
- <h5>Scalable</h5>
- <p>Designed for cloud deployment and growth</p>
- </div>
- </div>
- <div class="benefit-item">
- <i class="material-icons">savings</i>
- <div class="benefit-content">
- <h5>Affordable</h5>
- <p>Cost-effective solution for institutions of all sizes</p>
- </div>
- </div>
- <div class="benefit-item">
- <i class="material-icons">api</i>
- <div class="benefit-content">
- <h5>Open APIs</h5>
- <p>Headless application design for maximum flexibility</p>
- </div>
- </div>
- </div>
- </div>
- </div>
- </div>
-
- <div class="row">
- <div class="col s12">
- <div class="solution-providers">
- <h3>For Solution Providers</h3>
- <p class="intro-text">
- Fineract® 1.x is a cloud-ready platform with open APIs, designed as a headless application.
- This makes it ideal for solution providers who want to:
- </p>
-
- <div class="features-grid">
- <div class="feature-card">
- <i class="material-icons">integration_instructions</i>
- <h4>Integrate</h4>
- <p>Build custom interfaces and extensions</p>
- </div>
-
- <div class="feature-card">
- <i class="material-icons">architecture</i>
- <h4>Scale</h4>
- <p>Deploy cloud-native solutions</p>
- </div>
-
- <div class="feature-card">
- <i class="material-icons">hub</i>
- <h4>Innovate</h4>
- <p>Create unique financial products</p>
- </div>
- </div>
- </div>
- </div>
- </div>
-
- <style>
- .mission-points, .benefits-list {
- padding: 20px 0;
- }
- .mission-item, .benefit-item {
- display: flex;
- align-items: center;
- margin-bottom: 15px;
- }
- .mission-item i, .benefit-item i {
- margin-right: 15px;
- color: #26a69a;
- }
- .mission-item p {
- margin: 0;
- font-size: 1.1rem;
- }
- .benefit-content {
- flex: 1;
- }
- .benefit-content h5 {
- margin: 0;
- color: #26a69a;
- }
- .benefit-content p {
- margin: 5px 0 0 0;
- font-size: 1rem;
- }
- .solution-providers {
- padding: 2rem 0;
- }
- .solution-providers h3 {
- color: var(--text-color);
- margin-bottom: 1.5rem;
- }
- .solution-providers p {
- color: var(--text-color);
- font-size: 1.1rem;
- line-height: 1.6;
- margin-bottom: 2rem;
- opacity: 0.95;
- }
- .features-grid {
- display: grid;
- grid-template-columns: repeat(auto-fit, minmax(250px, 1fr));
- gap: 2rem;
- margin-top: 2rem;
- }
- .feature-card {
- background-color: var(--card-bg);
- border: 1px solid var(--border-color);
- border-radius: 8px;
- padding: 1.5rem;
- text-align: center;
- transition: transform 0.2s ease, box-shadow 0.2s ease;
- }
- .feature-card:hover {
- transform: translateY(-2px);
- box-shadow: 0 4px 12px var(--card-shadow);
- }
- .feature-card i {
- color: var(--link-color);
- font-size: 2.5rem;
- margin-bottom: 1rem;
- }
- .feature-card h4 {
- color: var(--text-color);
- margin: 1rem 0;
- font-size: 1.4rem;
- }
- .feature-card p {
- color: var(--text-color);
- margin: 0;
- font-size: 1rem;
- line-height: 1.5;
- opacity: 0.9;
- }
- [data-theme="dark"] .feature-card {
- background: linear-gradient(
- 145deg,
- rgba(255, 255, 255, 0.05) 0%,
- rgba(255, 255, 255, 0.02) 100%
- );
- }
- </style>
-
+ <p class="flow-text justify-align">
+ Apache Fineract® (\’fīn-,ә-,rakt\) is open source software for financial services.
+ </p>
+ <p class="flow-text justify-align">
+ At Apache Fineract®, our mission is to build, maintain and enhance a cloud-ready
+ core banking system for robust, scalable, and secure operations of financial institutions.
+ Fineract® provides a reliable, robust, and affordable solution
+ for entrepreneurs, financial institutions, and service providers.
+ We believe in financial services for everyone, including and especially for the unbanked and underbanked.
+
+ Fineract® is aimed at innovative mobile and cloud-based solutions,
+ and enables digital transaction accounts for all.
+ </p>
+ <p class="flow-text justify-align">ASF Fineract® 1.x is a cloud-ready platform with open APIs. It is, by design, a headless application.
+ Solution Providers, including system integrators and banking system operators are able to build their own front end solutions on top of Fineract®.
+ We encourage all Consumers (or users) of fineract to consult competent technical resources for all questions related to securing and running the software properly.
+ Please consult the Apache license for further legal information and the <a href="https://cwiki.apache.org/confluence/pages/viewpage.action?pageId=91554327">FAQ<a></a> and <a href="https://cwiki.apache.org/confluence/display/FINERACT/Securing+Fineract">Securing Fineract</a> for key information about the setup of this project.
+ </p>
+
+ <p class="flow-text justify-align"> NOTE DEPRECATED SUB-PROJECT: The Fineract® Community has also worked on a code project called Fineract® CN,
+ intended to operate as a microservice architecture. If you find references to this CN project it was not released. In May 2023, the Fineract® Community decided to DEPRECATE this project, and archived in late 2023. This side-project served an important role in describing a microservice approach.
+ </p>
<div class="divider"></div>
</section>
+
<section id="about" class="section">
<h3 class="center-align">About</h3>
-
- <div class="row">
- <div class="col s12">
- <div class="card-panel">
- <h4><i class="material-icons left">info</i>What is Fineract?</h4>
- <p class="flow-text justify-align">
- Apache Fineract® is a sophisticated core banking system that provides comprehensive financial technology solutions.
- It offers robust features for client data management, loan and savings portfolio management, integrated real-time accounting,
- and extensive reporting capabilities.
- </p>
- </div>
- </div>
- </div>
-
- <div class="row">
- <div class="col s12 m6">
- <div class="card-panel">
- <h4><i class="material-icons left">settings</i>Key Features</h4>
- <ul class="collection">
- <li class="collection-item">
- <i class="material-icons left tiny">tune</i>
- <span><strong>Flexible Product Configuration</strong><br>
- Customize financial products to meet your needs</span>
- </li>
- <li class="collection-item">
- <i class="material-icons left tiny">verified_user</i>
- <span><strong>KYC Documentation Support</strong><br>
- Comprehensive customer verification system</span>
- </li>
- <li class="collection-item">
- <i class="material-icons left tiny">rule</i>
- <span><strong>Business Rule Sets</strong><br>
- Configurable business logic and workflows</span>
- </li>
- <li class="collection-item">
- <i class="material-icons left tiny">payments</i>
- <span><strong>Payment Transactions</strong><br>
- Secure and efficient payment processing</span>
- </li>
- <li class="collection-item">
- <i class="material-icons left tiny">account_balance</i>
- <span><strong>Portfolio Management</strong><br>
- Complete loan and investment tracking</span>
- </li>
- </ul>
- </div>
- </div>
-
- <div class="col s12 m6">
- <div class="card-panel">
- <h4><i class="material-icons left">architecture</i>Deployment Options</h4>
- <ul class="collection">
- <li class="collection-item">
- <i class="material-icons left tiny">cloud</i>
- <span><strong>Cloud Deployment</strong><br>
- Scalable cloud-based solutions with active community support</span>
- </li>
- <li class="collection-item">
- <i class="material-icons left tiny">computer</i>
- <span><strong>On-Premise</strong><br>
- Traditional deployment for complete control</span>
- </li>
- <li class="collection-item">
- <i class="material-icons left tiny">phone_iphone</i>
- <span><strong>Mobile Access</strong><br>
- Support for both online and offline mobile interfaces</span>
- </li>
- <li class="collection-item">
- <i class="material-icons left tiny">api</i>
- <span><strong>Open API</strong><br>
- Comprehensive API support since 2011</span>
- </li>
- <li class="collection-item">
- <i class="material-icons left tiny">extension</i>
- <span><strong>Extensible Architecture</strong><br>
- Support for any organizational type or delivery channel</span>
- </li>
- </ul>
- </div>
- </div>
- </div>
-
- <div class="row">
- <div class="col s12">
- <div class="card-panel yellow lighten-4">
- <h4><i class="material-icons left">warning</i>Important Notice</h4>
- <p class="flow-text">
- We encourage all users of Fineract to:
- </p>
- <ul class="browser-default">
- <li>Consult competent technical resources for questions about secure deployment and operation</li>
- <li>Review the <a href="https://cwiki.apache.org/confluence/pages/viewpage.action?pageId=91554327">FAQ</a> and
- <a href="https://cwiki.apache.org/confluence/display/FINERACT/Securing+Fineract">Security Guide</a> for essential setup information</li>
- <li>Refer to the Apache license for legal information</li>
- </ul>
- </div>
- </div>
- </div>
-
- <div class="row">
- <div class="col s12">
- <div class="card-panel red lighten-5">
- <h4><i class="material-icons left">history</i>Deprecated Sub-Project Notice</h4>
- <p class="flow-text">
- The Fineract® CN project (microservice architecture version) was deprecated in May 2023 and archived in late 2023.
- While this side-project served an important role in describing a microservice approach, it was never officially released.
- </p>
- </div>
- </div>
- </div>
+ <p class="flow-text justify-align">
+ Fineract® can be deployed in any environment:
+ cloud or on-premise, although most active contributions are coming in on cloud based deployments.
+ It can support front end interfaces on or offline, mobile or PC, depending on the requirements and as managed by the implementing organization.
- <style>
- .collection-item i.tiny {
- margin-top: 3px;
- }
- .collection-item span {
- display: block;
- margin-left: 30px;
- }
- .collection-item strong {
- color: #26a69a;
- }
- </style>
+ It’s aim is to be extensible enough to support any organizational type or delivery channel,
+ and flexible enough to support any product, service, or lending methodology.
+
+ For any organization, big or small, it provides
+ the client data management, loan and savings portfolio management, integrated real time accounting,
+ and social and financial reporting needed
+ to bring digital financial services to a modern connected world.
+ </p>
+ <p class="flow-text justify-align">
+ Fineract® 1.x compares well to other core banking systems
+ and draws from requirements in credit unions, microfinance institutions, and small non-banking financial institutions.
+ Features include
+ flexible product configuration,
+ KYC documentation support,
+ business rule sets,
+ payment transactions,
+ and portfolio management.
+ It includes an open API that dates to 2011 and is deployed in relatively high transaction
+ volume environments.
+ </p>
+
+ <p class="flow-text justify-align">
+ Fineract® 1.x began incubation at Apache in December 2015 and is used by
+ an active community of companies
+ who build solutions for both financial inclusion and fintech innovation.
+ </p>
<div class="divider"></div>
</section>
<section id="contribute" class="section">
<h3 class="center-align">Contribute</h3>
-
- <div class="row">
- <div class="col s12">
- <div class="card-panel">
- <h4><i class="material-icons left">people</i>Join Our Community</h4>
- <p class="flow-text justify-align">
- The Apache Fineract® community welcomes contributors who want to support the
- Fineract® technology. Our community builds everything from this website,
- to the Fineract® code to documentation and best practices information.
- </p>
- </div>
- </div>
- </div>
-
- <div class="row">
- <div class="col s12 m6">
- <div class="card-panel">
- <h4><i class="material-icons left">build</i>Ways to Contribute</h4>
- <ul class="collection">
- <li class="collection-item">
- <i class="material-icons left tiny">code</i>
- <span>Submit bug fixes and new features to the codebase</span>
- </li>
- <li class="collection-item">
- <i class="material-icons left tiny">description</i>
- <span>Improve documentation and wiki pages</span>
- </li>
- <li class="collection-item">
- <i class="material-icons left tiny">web</i>
- <span>Enhance the website user experience</span>
- </li>
- <li class="collection-item">
- <i class="material-icons left tiny">school</i>
- <span>Help users learn best practices</span>
- </li>
- <li class="collection-item">
- <i class="material-icons left tiny">bug_report</i>
- <span>Report bugs and suggest improvements</span>
- </li>
- </ul>
- </div>
- </div>
-
- <div class="col s12 m6">
- <div class="card-panel">
- <h4><i class="material-icons left">mail</i>Mailing Lists</h4>
-
- <div class="collection">
- <div class="collection-item">
- <h5 class="title">Development List</h5>
- <p class="grey-text">For users, developers, and contributors discussing Apache Fineract®</p>
- <div class="chip">
- <i class="material-icons left">email</i>
- dev@fineract.apache.org
- </div>
- <div class="mailing-actions">
- <a href="mailto:dev-subscribe@fineract.apache.org" class="btn-small waves-effect waves-light">
- <i class="material-icons left">person_add</i>Subscribe
- </a>
- <a href="https://lists.apache.org/list.html?dev@fineract.apache.org" target="_blank" class="btn-small waves-effect waves-light">
- <i class="material-icons left">history</i>Archives
- </a>
- </div>
- </div>
-
- <div class="collection-item">
- <h5 class="title">Commits List</h5>
- <p class="grey-text">Receive notifications of all code contributions</p>
- <div class="chip">
- <i class="material-icons left">email</i>
- commits@fineract.apache.org
- </div>
- <div class="mailing-actions">
- <a href="mailto:commits-subscribe@fineract.apache.org" class="btn-small waves-effect waves-light">
- <i class="material-icons left">person_add</i>Subscribe
- </a>
- <a href="https://markmail.org/search/?q=list%3Aorg.apache.fineract.commits+order%3Adate-backward" target="_blank" class="btn-small waves-effect waves-light">
- <i class="material-icons left">history</i>Archives
- </a>
- </div>
- </div>
- </div>
- </div>
- </div>
- </div>
-
- <div class="row">
- <div class="col s12">
- <div class="card-panel yellow lighten-4">
- <h4><i class="material-icons left">tips_and_updates</i>Getting Started</h4>
- <p class="flow-text">
- New to contributing? Check out our <a href="https://cwiki.apache.org/confluence/display/FINERACT/Contributor%27s+Zone">Contributor's Guide</a> for:
- </p>
- <div class="row">
- <div class="col s12 m6">
- <ul class="browser-default">
- <li>Development environment setup</li>
- <li>Coding standards and best practices</li>
- <li>Pull request guidelines</li>
- </ul>
- </div>
- <div class="col s12 m6">
- <ul class="browser-default">
- <li>Testing procedures</li>
- <li>Documentation guidelines</li>
- <li>Community best practices</li>
- </ul>
- </div>
- </div>
- </div>
- </div>
- </div>
-
- <style>
- .mailing-actions {
- margin-top: 10px;
- }
- .mailing-actions .btn-small {
- margin-right: 10px;
- }
- .collection-item .title {
- margin-top: 0;
- color: #26a69a;
- }
- .collection-item .chip {
- margin-bottom: 10px;
- }
- </style>
-
+ <p class="flow-text justify-align">
+ The Apache Fineract® community welcomes contributors who want to support the
+ Fineract® technology. Our community builds everything from this website,
+ to the Fineract® code to documentation and best practices information.
+ </p>
+ <p class="flow-text justify-align">
+ We especially welcome additions and corrections to the
+ documentation, wiki, and website to improve the user experience.
+ Bug reports and fixes and additions to the Apache Fineract® code are welcome.
+ Helping users learn best practices also earns good karma in our community.
+ </p>
+ <article>
+ <h4>Mailing Lists</h4>
+ <h5>Users & Developers</h5>
+ <p class="flow-text">
+ <i>If you use, build on top of, deploy or are building contributions and modifications to Apache Fineract®, this is the list for you.</i><br/>
+ To subscribe, send a blank email to <a href="mailto:dev-subscribe@fineract.apache.org">dev-subscribe@fineract.apache.org</a>.<br/>
+ To <b>un</b>subscribe later, just send a blank email to <a href="mailto:dev-unsubscribe@fineract.apache.org">dev-unsubscribe@fineract.apache.org</a>.<br/>
+ You can also read the archives
+ <a href="https://lists.apache.org/list.html?dev@fineract.apache.org" target="_blank">on lists.apache.org</a>.
+ </p>
+ <h5>Commits</h5>
+ <p class="flow-text">
+ <i>This list receives an email whenever new code is contributed to Apache Fineract®</i>.<br/>
+ To subscribe, send a blank email to <a href="mailto:commits-subscribe@fineract.apache.org">commits-subscribe@fineract.apache.org</a>.<br/>
+ You can also <a href="https://markmail.org/search/?q=list%3Aorg.apache.fineract.commits+order%3Adate-backward" target="_blank">read the archives</a>.
+ </p>
+ </article>
<div class="divider"></div>
</section>
<section id="downloads" class="section">
<h3 class="center-align">Downloads</h3>
+ <p class="flow-text justify-align">The below table lists mirrored release artifacts and their associated hashes and signatures available at apache.org.
+ The keys used to sign releases are published at <a href="https://www.apache.org/dist/fineract/KEYS">KEYS</a>.
+ Instructions for verifying your mirrored downloads are located <a href="https://www.apache.org/dyn/closer.cgi#verify">here</a>.
+ </p>
<article>
- <h4>Downloads</h4>
- <p class="flow-text justify-align">
- Below you'll find official Apache Fineract® releases. We recommend using the latest stable version.
- Each release includes binary and source distributions with corresponding verification files.
- </p>
-
- <div class="downloads-table">
- <table>
- <thead>
- <tr>
- <th>Version</th>
- <th>Name</th>
- <th>Binary</th>
- <th>Source</th>
- </tr>
- </thead>
- <tbody>
- <tr>
- <td class="version-col">1.10.1</td>
- <td>Apache Fineract® 1.10.1</td>
- <td>
- <a href="#">apache-fineract-1.10.1-binary.tar.gz</a>
- <span class="file-type">
- (<a href="#">asc</a>, <a href="#">sha512</a>)
- </span>
- </td>
- <td>
- <a href="#">apache-fineract-1.10.1-src.tar.gz</a>
- <span class="file-type">
- (<a href="#">asc</a>, <a href="#">sha512</a>)
- </span>
- </td>
- </tr>
- <tr>
- <td class="version-col"><span class="red-text">1.9.0</span><br><small>(Pending Deprecation)</small></td>
- <td>Apache Fineract® 1.9.0</td>
- <td>
- <a href="#">apache-fineract-1.9.0-binary.tar.gz</a>
- <span class="file-type">
- (<a href="#">asc</a>, <a href="#">sha512</a>)
- </span>
- </td>
- <td>
- <a href="#">apache-fineract-1.9.0-src.tar.gz</a>
- <span class="file-type">
- (<a href="#">asc</a>, <a href="#">sha512</a>)
- </span>
- </td>
- </tr>
- </tbody>
- </table>
- </div>
-
- <div class="verification-section">
- <h4><i class="material-icons">verified_user</i>Verifying Downloads</h4>
- <p>We recommend verifying downloaded files using:</p>
-
- <div class="verification-methods">
- <div class="verification-method">
- <div class="method-header">
- <i class="material-icons">security</i>
- <h5>ASC Files</h5>
- </div>
- <p>PGP signatures (verify with KEYS file)</p>
- </div>
-
- <div class="verification-method">
- <div class="method-header">
- <i class="material-icons">check_circle</i>
- <h5>SHA512</h5>
- </div>
- <p>Checksums to verify file integrity</p>
- </div>
- </div>
-
- <div class="verification-guide">
- <p>See <a href="#" class="guide-link">Apache Release Download Guide<i class="material-icons">launch</i></a></p>
- </div>
- </div>
-
- <p class="flow-text justify-align">If you are looking for an old release that is not present here or on the mirror, please check the
- <a href="https://archive.apache.org/dist/fineract/">Apache archives</a>.</p>
- <div class="divider"></div>
-
+ <table class="responsive-table striped">
+ <thead>
+ <tr>
+ <th>Version</th>
+ <th>Release Notes</th>
+ <th>Binary Download</th>
+ <th>Source Download</th>
+ </tr>
+ </thead>
+
+ <tbody>
+ <tr>
+ <td>1.10.1 </td>
+ <td><a href="https://cwiki.apache.org/confluence/display/FINERACT/1.10.1+-+Apache+Fineract">Apache Fineract® 1.10.1</a></td>
+ <td>
+ <a href="https://fineract.gateway.scarf.sh/1.10.1">apache-fineract-1.10.1-binary.tar.gz</a>
+ (<a href="https://www.apache.org/dist/fineract/1.10.1/apache-fineract-1.10.1-binary.tar.gz.asc">asc</a>,
+ <a href="https://www.apache.org/dist/fineract/1.10.1/apache-fineract-1.10.1-binary.tar.gz.sha512">sha512</a>)</td>
+ <td><a href="https://www.apache.org/dyn/closer.cgi?path=/fineract/1.10.1/apache-fineract-1.10.1-src.tar.gz">apache-fineract-1.10.1src.tar.gz</a>
+ (<a href="https://www.apache.org/dist/fineract/1.10.1/apache-fineract-1.10.1-src.tar.gz.asc">asc</a>,
+ <a href="https://www.apache.org/dist/fineract/1.10.1/apache-fineract-1.10.1-src.tar.gz.sha512">sha512</a>)
+ </td>
+ </tr>
+ <tr>
+ <td>1.9.0 End of Life</td>
+ <td> see archives </a></td>
+ <td>
+ </td>
+ <td>
+ </td>
+ </tr>
+
+ </tbody>
+ </table>
</article>
+ <p class="flow-text justify-align">If you are looking for an old release that is not present here or on the mirror, please check the
+ <a href="https://archive.apache.org/dist/fineract/">Apache archives</a>.</p>
+ <div class="divider"></div>
</section>
<section id="resources" class="section">
<h3 class="center-align">Resources</h3>
-
- <div class="row">
- <div class="col s12 m6">
- <div class="card-panel">
- <h4><i class="material-icons left">rocket_launch</i>Getting Started</h4>
- <div class="collection">
- <a href="https://www.fineract.dev/" class="collection-item">
- <strong>Demo Server</strong>
- <p class="grey-text">Try Fineract on our community CI/CD server</p>
- </a>
- <a href="https://cwiki.apache.org/confluence/display/FINERACT/Getting+Started+Docs" class="collection-item">
- <strong>Getting Started Guide</strong>
- <p class="grey-text">Setup guide for Fineract 1.x (non-CN)</p>
- </a>
- <a href="https://cwiki.apache.org/confluence/display/FINERACT/Contributor%27s+Zone" class="collection-item">
- <strong>Contributor's Guide</strong>
- <p class="grey-text">Learn how to contribute to Fineract</p>
- </a>
- </div>
- </div>
- </div>
-
- <div class="col s12 m6">
- <div class="card-panel">
- <h4><i class="material-icons left">engineering</i>Development</h4>
- <div class="collection">
- <a href="https://github.com/apache/fineract" class="collection-item">
- <strong>Main Repository</strong>
- <p class="grey-text">Source code for Apache Fineract</p>
- </a>
- <a href="https://issues.apache.org/jira/projects/FINERACT" class="collection-item">
- <strong>Issue Tracker</strong>
- <p class="grey-text">Report bugs and request features</p>
- </a>
- <a href="https://cwiki.apache.org/confluence/display/FINERACT/Committer%27s+Zone" class="collection-item">
- <strong>Committer's Zone</strong>
- <p class="grey-text">Guidelines for pull requests and code reviews</p>
- </a>
- </div>
- </div>
- </div>
- </div>
-
- <div class="row">
- <div class="col s12 m6">
- <div class="card-panel">
- <h4><i class="material-icons left">description</i>Documentation</h4>
- <div class="collection">
- <a href="https://cwiki.apache.org/confluence/display/FINERACT/Fineract+Home" class="collection-item">
- <strong>Project Wiki</strong>
- <p class="grey-text">Project management and documentation</p>
- </a>
- <a href="https://fineract.apache.org/docs/legacy/index.html" class="collection-item">
- <strong>API Documentation</strong>
- <p class="grey-text">Legacy API reference</p>
- </a>
- <a href="https://cwiki.apache.org/confluence/x/nK9zB" class="collection-item">
- <strong>Security Reports</strong>
- <p class="grey-text">Fixed security issues and updates</p>
- </a>
- </div>
- </div>
- </div>
+ <article>
+ <h4>Frequently Used Links</h4>
+ <p class="flow-text justify-align">
+ <a href="https://www.fineract.dev/">Fineract.dev</a><br/>
+ Community Demo Server (CI/CD)
+ </p>
+ <p class="flow-text justify-align">
+ <a href="https://issues.apache.org/jira/projects/FINERACT">JIRA</a><br/>
+ Issue tracking
+ </p>
+ <p class="flow-text justify-align">
+ <a href="https://cwiki.apache.org/confluence/display/FINERACT/Fineract+Home">Confluence</a><br/>
+ Project management and documentation
+ </p>
+ <p class="flow-text justify-align">
+ <a href="https://cwiki.apache.org/confluence/display/FINERACT/Getting+Started+Docs">Getting Started Guide</a>
+ for Fineract® 1.x (non-CN)
+ </p>
+ </article>
+ <article>
+ <h4>Documentation</h4>
+ <p class="flow-text justify-align">
+ <a href="https://cwiki.apache.org/confluence/display/FINERACT/Contributor%27s+Zone" target="_blank">Contributor's Zone</a><br/>
+ Here you will find guides about getting started, how to contribute, and build instructions.
+ </p>
+ <p class="flow-text justify-align">
+ <a href="https://cwiki.apache.org/confluence/display/FINERACT/Committer%27s+Zone" target="_blank">Committer's Zone</a><br/>
+ Here you will find guides about handling pull requests, and dealing with code reviews.
+ </p>
+ <p class="flow-text justify-align">
+ <a href="https://cwiki.apache.org/confluence/x/nK9zB" target="_blank">Security Report</a><br/>
+ Lists of security issues fixed in released versions of the Apache Fineract® are available here.
+ </p>
+ <p class="flow-text justify-align">
+ <a href="https://fineract.apache.org/docs/legacy/index.html" target="_blank">Legacy Docs</a><br/>
+ Apache Fineract® API Legacy Documentation
+ </p>
+ </article>
+ <article>
+ <h4>Repositories</h4>
+ <p class="flow-text justify-align">
+ <a href="https://github.com/apache/fineract" target="_blank">Apache Fineract®</a><br/>
+ Here you will find the source code for Apache Fineract®.
+ </p>
- <div class="col s12 m6">
- <div class="card-panel">
- <h4><i class="material-icons left">code</i>Related Resources</h4>
- <div class="collection">
- <a href="https://github.com/apache/fineract-site" class="collection-item">
- <strong>Website Repository</strong>
- <p class="grey-text">Source code for this website</p>
- </a>
- <a href="https://www.apache.org/licenses/" class="collection-item">
- <strong>Licensing</strong>
- <p class="grey-text">Apache License information</p>
- </a>
- <a href="https://www.apache.org/security/" class="collection-item">
- <strong>Security</strong>
- <p class="grey-text">Apache security policies and procedures</p>
- </a>
- </div>
- </div>
- </div>
- </div>
+ <p class="flow-text justify-align">
+ <a href="https://github.com/apache/fineract-site" target="_blank">Web Site</a><br/>
+ Here you will find the source code for this web site.
+ </p>
+ </article>
</section>
</main>
<footer class="page-footer">
<div class="container">
<section id="reference" class="section">
- <h3 class="white-text center-align">Reference</h3>
- <div class="reference-links">
- <div class="ref-group">
- <a class="ref-link waves-effect waves-light" href="https://www.apache.org/" target="_blank">
- <i class="material-icons">language</i>
- <span>The Apache Software Foundation</span>
- </a>
- <a class="ref-link waves-effect waves-light" href="https://www.apache.org/licenses/" target="_blank">
- <i class="material-icons">gavel</i>
- <span>License</span>
- </a>
- <a class="ref-link waves-effect waves-light" href="https://www.apache.org/foundation/sponsorship.html" target="_blank">
- <i class="material-icons">volunteer_activism</i>
- <span>Sponsorship</span>
- </a>
- <a class="ref-link waves-effect waves-light" href="https://www.apache.org/foundation/thanks.html" target="_blank">
- <i class="material-icons">favorite</i>
- <span>Thanks</span>
- </a>
- <a class="ref-link waves-effect waves-light" href="https://www.apache.org/security/" target="_blank">
- <i class="material-icons">security</i>
- <span>Security</span>
- </a>
- </div>
-
- <div class="event-banner">
- <a href="https://www.apache.org/events/current-event.html" target="_blank">
- <img src="https://www.apache.org/events/current-event-234x60.png" alt="Apache Current Event"/>
- </a>
- </div>
- </div>
-
+ <h3>Reference</h3>
+ <p class="flow-text">
+ <a class="link-inverse" href="https://www.apache.org/" target="_blank">The Apache Software Foundation</a><br/>
+ <a class="link-inverse" href="https://www.apache.org/licenses/" target="_blank">License</a><br/>
+ <a class="link-inverse" href="https://www.apache.org/foundation/sponsorship.html" target="_blank">Sponsorship</a><br/>
+ <a class="link-inverse" href="https://www.apache.org/foundation/thanks.html" target="_blank">Thanks</a><br/>
+ <a class="link-inverse" href="https://www.apache.org/security/" target="_blank">Security</a><br/>
+ <a class="link-inverse" href="https://www.apache.org/events/current-event.html">
+ <img src="https://www.apache.org/events/current-event-234x60.png"/>
+ </a>
+ </p>
<div class="divider divider-inverse"></div>
-
- <div class="copyright center-align white-text">
- <p>
- © 2009 - <span id="current-year">2020</span>
- <a class="white-text" href="https://apache.org/" target="_blank">The Apache Software Foundation</a>.
- Licensed under the <a class="white-text" href="https://www.apache.org/licenses/LICENSE-2.0" target="_blank">Apache License, Version 2.0</a>.
- </p>
- <p>
- Apache Fineract, Fineract, Apache, the Apache feather, and the Apache Fineract project logo are either registered trademarks or trademarks of the Apache Software Foundation.
- </p>
- </div>
+ <p class="flow-text center-align">
+ © 2009 - <span id="current-year">2020</span> <a class="link-inverse" href="https://apache.org/" target="_blank">The Apache Software Foundation</a>. Licensed under the <a class="link-inverse" href="https://www.apache.org/licenses/LICENSE-2.0" target="_blank">Apache License, Version 2.0</a>.<br/>
+ Apache Fineract, Fineract, Apache, the Apache feather, and the Apache Fineract project logo are either registered trademarks or trademarks of the Apache Software Foundation.<br/>
+ </p>
</section>
-
- <style>
- .reference-links {
- display: flex;
- flex-direction: column;
- align-items: center;
- gap: 2rem;
- padding: 2rem 0;
- }
-
- .ref-group {
- display: flex;
- flex-wrap: wrap;
- justify-content: center;
- gap: 1rem;
- max-width: 800px;
- }
-
- .ref-link {
- display: flex;
- align-items: center;
- gap: 0.75rem;
- padding: 0.85rem 1.5rem;
- background: rgba(255, 255, 255, 0.08);
- border-radius: 8px;
- color: white;
- position: relative;
- overflow: hidden;
- transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
- box-shadow: 0 2px 4px rgba(0, 0, 0, 0.1);
- }
-
- .ref-link::before {
- content: '';
- position: absolute;
- top: 50%;
- left: 50%;
- width: 0;
- height: 0;
- background: rgba(255, 255, 255, 0.1);
- border-radius: 50%;
- transform: translate(-50%, -50%);
- transition: width 0.6s ease, height 0.6s ease;
- }
-
- .ref-link {
- background-color: rgba(255, 255, 255, 0.08);
- transform: none;
- box-shadow: none;
- }
-
- .ref-link i {
- font-size: 1.4rem;
- transition: none;
- }
-
- .ref-link span {
- position: relative;
- font-weight: 500;
- letter-spacing: 0.3px;
- transition: none;
- }
-
- .event-banner {
- padding: 1.25rem;
- background: rgba(255, 255, 255, 0.08);
- border-radius: 12px;
- transition: none;
- position: relative;
- overflow: hidden;
- }
-
- .event-banner img {
- display: block;
- max-width: 100%;
- height: auto;
- transition: none;
- }
-
- .copyright {
- padding: 2rem 0 1rem;
- font-size: 0.9rem;
- opacity: 0.9;
- line-height: 1.6;
- }
-
- .copyright a {
- text-decoration: none;
- background-image: none;
- padding-bottom: 2px;
- }
-
- .divider-inverse {
- background: rgba(255, 255, 255, 0.1);
- margin: 2rem 0;
- height: 1px;
- position: relative;
- overflow: hidden;
- }
-
- .divider-inverse::after {
- content: '';
- position: absolute;
- top: 0;
- left: -100%;
- width: 100%;
- height: 100%;
- background: none;
- }
- </style>
</div>
</footer>
<script type="text/javascript" src="js/jquery.min.js"></script>
@@ -1202,560 +307,5 @@
$('.button-collapse').sideNav('hide');
}
</script>
- <style>
- /* Global Animation Effects */
- .section {
- opacity: 1;
- transform: none;
- }
-
- /* Card Animations */
- .card-panel {
- transition: none;
- border-radius: 12px;
- border: 1px solid rgba(255, 255, 255, 0.1);
- overflow: hidden;
- position: relative;
- }
-
- .card-panel::before {
- content: '';
- position: absolute;
- top: 0;
- left: -100%;
- width: 100%;
- height: 100%;
- background: none;
- transition: none;
- }
-
- .card-panel {
- transform: none;
- box-shadow: none;
- }
-
- .card-panel h4 {
- transition: none;
- }
-
- .card-panel .material-icons {
- transition: none;
- }
-
- /* Collection Item Animations */
- .collection .collection-item {
- transition: none;
- position: relative;
- padding-left: 25px;
- }
-
- .collection .collection-item {
- background-color: none;
- padding-left: 25px;
- }
-
- .collection .collection-item::before {
- content: '';
- position: absolute;
- top: 0;
- left: 0;
- width: 100%;
- height: 100%;
- background: none;
- transform: none;
- z-index: -1;
- }
-
- .collection .collection-item strong {
- transition: none;
- }
-
- /* Button and Link Animations */
- .btn, .btn-large {
- transition: none;
- position: relative;
- overflow: hidden;
- }
-
- .btn::after, .btn-large::after {
- content: '';
- position: absolute;
- top: 50%;
- left: 50%;
- width: 0;
- height: 0;
- background: none;
- border-radius: 50%;
- transform: translate(-50%, -50%);
- transition: none;
- }
-
- .btn {
- transform: none;
- box-shadow: none;
- }
-
- .btn::after {
- width: 0;
- height: 0;
- }
-
- /* Table Animations */
- table.highlight > tbody > tr {
- transition: none;
- }
-
- table.highlight > tbody > tr {
- background-color: none;
- transform: none;
- }
-
- /* Navigation Link Animations */
- .nav-link {
- position: relative;
- transition: none;
- }
-
- .nav-link::after {
- content: '';
- position: absolute;
- bottom: 0;
- left: 50%;
- width: 0;
- height: 2px;
- background: none;
- transition: none;
- transform: translateX(-50%);
- }
-
- .nav-link {
- background-color: transparent;
- }
-
- .nav-link::after {
- width: 0;
- }
-
- /* List Item Animations */
- .mission-points li, .benefits-list li {
- transition: none;
- position: relative;
- padding-left: 25px;
- }
-
- .mission-points li, .benefits-list li {
- transform: none;
- color: none;
- }
-
- .mission-points li::before, .benefits-list li::before {
- content: '•';
- position: absolute;
- left: 0;
- color: #26a69a;
- transition: none;
- }
-
- .mission-points li::before, .benefits-list li::before {
- transform: none;
- }
-
- /* Divider Animations */
- .divider {
- position: relative;
- overflow: hidden;
- }
-
- .divider::after {
- content: '';
- position: absolute;
- top: 0;
- left: -100%;
- width: 100%;
- height: 100%;
- background: none;
- animation: none;
- }
-
- /* Image Animations */
- img:not(.logo-img) {
- transition: none;
- }
-
- img:not(.logo-img) {
- transform: none;
- }
-
- /* Scroll Animations */
- @keyframes fadeIn {
- from { opacity: 0; transform: translateY(20px); }
- to { opacity: 1; transform: translateY(0); }
- }
-
- .scroll-fade {
- opacity: 1;
- transform: none;
- }
-
- .scroll-fade.visible {
- opacity: 1;
- transform: none;
- }
- </style>
- <style>
- /* Theme Variables */
- :root {
- --primary-bg: #f8f8ff;
- --secondary-bg: #ffffff;
- --text-color: #343434;
- --nav-bg: #343434;
- --nav-text: #f8f8ff;
- --card-bg: #ffffff;
- --card-shadow: rgba(0, 0, 0, 0.1);
- --link-color: #26a69a;
- --border-color: rgba(0, 0, 0, 0.1);
- --hover-bg: rgba(0, 0, 0, 0.02);
- --warning-bg: #fff3cd;
- --warning-text: #856404;
- --danger-bg: #f8d7da;
- --danger-text: #721c24;
- --info-bg: #cce5ff;
- --info-text: #004085;
- }
-
- [data-theme="dark"] {
- --primary-bg: #121212;
- --secondary-bg: #1e1e1e;
- --text-color: #ffffff;
- --nav-bg: #000000;
- --nav-text: #ffffff;
- --card-bg: #2d2d2d;
- --card-shadow: rgba(0, 0, 0, 0.5);
- --link-color: #4db6ac;
- --border-color: rgba(255, 255, 255, 0.15);
- --hover-bg: rgba(255, 255, 255, 0.1);
- --warning-bg: #332701;
- --warning-text: #ffd970;
- --danger-bg: #2c0b0e;
- --danger-text: #f8d7da;
- --info-bg: #002752;
- --info-text: #9fcdff;
- }
-
- /* Additional Dark Mode Specific Styles */
- [data-theme="dark"] .card-panel {
- background-color: var(--card-bg);
- border: 1px solid var(--border-color);
- }
-
- [data-theme="dark"] .yellow.lighten-4 {
- background-color: var(--warning-bg) !important;
- color: var(--warning-text) !important;
- }
-
- [data-theme="dark"] .red.lighten-5 {
- background-color: var(--danger-bg) !important;
- color: var(--danger-text) !important;
- }
-
- [data-theme="dark"] .flow-text {
- color: var(--text-color);
- }
-
- [data-theme="dark"] .card-panel h4 {
- color: var(--text-color);
- }
-
- [data-theme="dark"] .material-icons {
- color: var(--link-color);
- }
-
- [data-theme="dark"] a {
- color: var(--link-color);
- }
-
- [data-theme="dark"] .collection .collection-item {
- background-color: var(--card-bg);
- border-color: var(--border-color);
- }
-
- /* Improve section heading visibility */
- [data-theme="dark"] h3.center-align {
- color: var(--text-color);
- text-shadow: 0 1px 2px rgba(0, 0, 0, 0.3);
- }
-
- /* Improve visibility for important notices */
- [data-theme="dark"] .card-panel.yellow.lighten-4 h4,
- [data-theme="dark"] .card-panel.red.lighten-5 h4 {
- color: inherit;
- }
-
- /* Ensure list items are visible */
- [data-theme="dark"] ul li {
- color: var(--text-color);
- }
-
- /* Improve code block readability */
- [data-theme="dark"] pre {
- background-color: var(--secondary-bg);
- border: 1px solid var(--border-color);
- color: var(--text-color);
- }
- </style>
- <script>
- // Theme Toggle Functionality
- function toggleTheme() {
- const html = document.documentElement;
- const currentTheme = html.getAttribute('data-theme');
- const newTheme = currentTheme === 'dark' ? 'light' : 'dark';
-
- html.setAttribute('data-theme', newTheme);
- localStorage.setItem('theme', newTheme);
-
- // Update icon and text
- const themeIcon = document.querySelector('.theme-toggle i');
- const themeText = document.querySelector('.theme-text');
- themeText.textContent = newTheme === 'dark' ? 'Light Mode' : 'Dark Mode';
- }
-
- // Set Initial Theme
- document.addEventListener('DOMContentLoaded', function() {
- const savedTheme = localStorage.getItem('theme') || 'light';
- document.documentElement.setAttribute('data-theme', savedTheme);
-
- const themeText = document.querySelector('.theme-text');
- themeText.textContent = savedTheme === 'dark' ? 'Light Mode' : 'Dark Mode';
- });
- </script>
- <style>
- /* Theme toggle button styles */
- .theme-toggle {
- width: 40px;
- height: 40px;
- display: flex;
- align-items: center;
- justify-content: center;
- border-radius: 50%;
- margin-left: 8px;
- transition: background-color 0.2s ease;
- }
-
- .theme-toggle i {
- font-size: 20px;
- transition: transform 0.3s ease;
- }
-
- .theme-toggle:hover {
- background-color: rgba(255, 255, 255, 0.1);
- }
-
- /* Solution Providers section styles */
- .solution-providers {
- padding: 2rem 0;
- }
-
- .solution-providers h3 {
- color: var(--text-color);
- margin-bottom: 1.5rem;
- }
-
- .solution-providers p {
- color: var(--text-color);
- font-size: 1.1rem;
- line-height: 1.6;
- margin-bottom: 2rem;
- opacity: 0.95;
- }
-
- .features-grid {
- display: grid;
- grid-template-columns: repeat(auto-fit, minmax(250px, 1fr));
- gap: 2rem;
- margin-top: 2rem;
- }
-
- .feature-card {
- background-color: var(--card-bg);
- border: 1px solid var(--border-color);
- border-radius: 8px;
- padding: 1.5rem;
- text-align: center;
- transition: transform 0.2s ease, box-shadow 0.2s ease;
- }
-
- .feature-card:hover {
- transform: translateY(-2px);
- box-shadow: 0 4px 12px var(--card-shadow);
- }
-
- .feature-card i {
- color: var(--link-color);
- font-size: 2.5rem;
- margin-bottom: 1rem;
- }
-
- .feature-card h4 {
- color: var(--text-color);
- margin: 1rem 0;
- font-size: 1.4rem;
- }
-
- .feature-card p {
- color: var(--text-color);
- margin: 0;
- font-size: 1rem;
- line-height: 1.5;
- opacity: 0.9;
- }
-
- [data-theme="dark"] .feature-card {
- background: linear-gradient(
- 145deg,
- rgba(255, 255, 255, 0.05) 0%,
- rgba(255, 255, 255, 0.02) 100%
- );
- }
- </style>
-
- <script>
- // Theme Toggle Functionality
- function toggleTheme() {
- const html = document.documentElement;
- const currentTheme = html.getAttribute('data-theme');
- const newTheme = currentTheme === 'dark' ? 'light' : 'dark';
- const themeIcon = document.querySelector('.theme-toggle i');
-
- html.setAttribute('data-theme', newTheme);
- localStorage.setItem('theme', newTheme);
-
- // Update icon based on theme
- themeIcon.textContent = newTheme === 'dark' ? 'light_mode' : 'dark_mode';
- }
-
- // Set Initial Theme
- document.addEventListener('DOMContentLoaded', function() {
- const savedTheme = localStorage.getItem('theme') || 'light';
- const themeIcon = document.querySelector('.theme-toggle i');
-
- document.documentElement.setAttribute('data-theme', savedTheme);
- themeIcon.textContent = savedTheme === 'dark' ? 'light_mode' : 'dark_mode';
- });
- </script>
- <style>
- /* Subtle fade-in animation for sections */
- .section {
- opacity: 0;
- animation: fadeIn 0.5s ease forwards;
- }
-
- @keyframes fadeIn {
- from {
- opacity: 0;
- }
- to {
- opacity: 1;
- }
- }
-
- /* Gentle loading animation for images */
- img {
- opacity: 0;
- transition: opacity 0.3s ease;
- }
-
- img.loaded {
- opacity: 1;
- }
-
- /* Subtle card entrance */
- .card-panel {
- opacity: 0;
- animation: slideIn 0.4s ease forwards;
- }
-
- @keyframes slideIn {
- from {
- opacity: 0;
- transform: translateY(10px);
- }
- to {
- opacity: 1;
- transform: translateY(0);
- }
- }
-
- /* Professional button interaction */
- .btn, .btn-large {
- position: relative;
- overflow: hidden;
- }
-
- .btn::after {
- content: '';
- position: absolute;
- top: 50%;
- left: 50%;
- width: 0;
- height: 0;
- background: rgba(255, 255, 255, 0.1);
- border-radius: 50%;
- transform: translate(-50%, -50%);
- transition: width 0.3s ease, height 0.3s ease;
- }
-
- .btn:active::after {
- width: 200px;
- height: 200px;
- }
- </style>
- <script>
- // Add loaded class to images after they load
- document.addEventListener('DOMContentLoaded', function() {
- const images = document.querySelectorAll('img');
- images.forEach(img => {
- if (img.complete) {
- img.classList.add('loaded');
- } else {
- img.addEventListener('load', function() {
- this.classList.add('loaded');
- });
- }
- });
- });
- </script>
- <script>
- // Add scroll animation functionality
- document.addEventListener('DOMContentLoaded', function() {
- const scrollElements = document.querySelectorAll('.scroll-fade');
-
- const elementInView = (el, percentageScroll = 100) => {
- const elementTop = el.getBoundingClientRect().top;
- return (
- elementTop <=
- ((window.innerHeight || document.documentElement.clientHeight) * (percentageScroll/100))
- );
- };
-
- const displayScrollElement = (element) => {
- element.classList.add('visible');
- };
-
- const handleScrollAnimation = () => {
- scrollElements.forEach((el) => {
- if (elementInView(el, 90)) {
- displayScrollElement(el);
- }
- });
- };
-
- window.addEventListener('scroll', () => {
- handleScrollAnimation();
- });
-
- // Initial check
- handleScrollAnimation();
- });
- </script>
</body>
</html>