diff --git a/content/_index.org b/content/_index.org index 98559b7..18d27d5 100644 --- a/content/_index.org +++ b/content/_index.org @@ -3,14 +3,15 @@ #+image_alt_text: "the ii logo, bright yellow, filled with cartoon versions of software mascots from the various free software we use in our work." #+exclude_footer: true -* Hello! -We are a tech company based in Aotearoa New Zealand. We develop and consult on -open-source, cloud-based solutions that focus on collaboration. Specializing in -cloud-native technology like Kubernetes, Talos, Knative, and more, our goal is -to contribute to community growth and wellbeing through service and technology. + + +*** Hello! +We're a tech company based in Aotearoa New Zealand. We develop and consult on open-source, cloud-based solutions and educational pathways that focus on collaboration. + +Specialising in education outreach and cloud-native technology such as Kubernetes, Talos, Knative, and more, we contribute to local and global community growth and wellbeing through service and technology. Check out [[/projects/][the projects]] we work on, meet our [[/team][team]], read our [[/post/][blog]], or [[mailto:hello@ii.coop][say hello]]! -**Let's pair!** \ No newline at end of file +*** Let's pair! \ No newline at end of file diff --git a/content/contact/_index.org b/content/contact/_index.org index cbec151..4f47c65 100644 --- a/content/contact/_index.org +++ b/content/contact/_index.org @@ -1,3 +1,3 @@ #+title: Get in touch - +#+image: /assets/ii-fresh.png Let us know how we can help diff --git a/content/projects/_index.org b/content/projects/_index.org index f41f924..67166bc 100644 --- a/content/projects/_index.org +++ b/content/projects/_index.org @@ -1,5 +1,7 @@ #+title: Our Projects +#+logo: /assets/ii-fresh.png -Our team is involved in many different tech and commnity projects- both in -Aotearoa New Zealand and larger, global communities. Here are some of the + +Our team is involved in many different tech and community projects, both in +Aotearoa New Zealand and global communities. Here are some of the projects we are involved in. \ No newline at end of file diff --git a/content/projects/apisnoop.org b/content/projects/apisnoop.org index 3f36808..863dbfd 100644 --- a/content/projects/apisnoop.org +++ b/content/projects/apisnoop.org @@ -1,10 +1,12 @@ -#+title: Apisnoop +#+title: APISnoop #+started: 2018 #+status: active #+priority: 3 -#+externalUrl: https://apisnoop.cncf.io/ +#+elink: https://apisnoop.cncf.io/ +#+type: tech +#+image: /assets/apisnoop.png APISnoop is a site that tracks the progress of the Kubernetes conformance -project by analyzing the audit logs from end-to-end test runs, to see how many +project by analysing the audit logs from end-to-end test runs, to see how many conformant endpoints are hit by conformance tests. Our team used postgres and svelte to build APISnoop, and the site is used by the larger Kubernetes community to set priorities for conformance work and reduce the creation of technical debt. \ No newline at end of file diff --git a/content/projects/cloudnative-nz.org b/content/projects/cloudnative-nz.org deleted file mode 100644 index 6bcef31..0000000 --- a/content/projects/cloudnative-nz.org +++ /dev/null @@ -1,7 +0,0 @@ -#+title: Cloudnative NZ -#+started: 2020 -#+status: active -#+priority: 2 -#+externalUrl: https://cloudnative.nz/ - -Cloudnative NZ is a group devoted to opening up paths in open source careers for people in New Zealand, through educational and networking events, informational websites, and other community work. We regularly host cloudnative NZ, both physically and digitally, and members of our team are deeply involved in the project. diff --git a/content/projects/education.org b/content/projects/education.org new file mode 100644 index 0000000..0e8819e --- /dev/null +++ b/content/projects/education.org @@ -0,0 +1,9 @@ +#+title: Educational Outreach +#+started: 2023 +#+status: active +#+priority: 1 +#+elink: +#+type: edu +#+image: /assets/IMG_0162.jpg + +In collaboration with select education providers and youth programs, we curate custom workshops, programmes and bootcamps to spark curiosity and foster interest in open source. \ No newline at end of file diff --git a/content/projects/events.org b/content/projects/events.org new file mode 100644 index 0000000..4b0e5f9 --- /dev/null +++ b/content/projects/events.org @@ -0,0 +1,9 @@ +#+title: Events +#+started: 2018 +#+status: active +#+priority: 2 +#+elink: +#+type: edu +#+image: /assets/shadowTech1.jpg + +**ii** regularly runs, supports or participates in events across the globe to promote opportunities in Open Source - career expos, conferences, Meetups, information sessions and industry site tours to name a few! \ No newline at end of file diff --git a/content/projects/k8s-conformance.org b/content/projects/k8s-conformance.org index 79dda46..3ff4a6e 100644 --- a/content/projects/k8s-conformance.org +++ b/content/projects/k8s-conformance.org @@ -2,11 +2,12 @@ #+started: 2018 #+status: active #+priority: 1 -#+externalUrl: https://www.cncf.io/training/certification/software-conformance/ - +#+elink: https://www.cncf.io/training/certification/software-conformance/ +#+type: tech +#+image: /assets/k8s.svg We work with the [[https://cncf.io][CNCF]] to help ensure consistent features for Kubernetes across vendor offerings and open source implementations. Our work includes tracking conformance progress with audit log analysis, gitops bots that verify -conformance submissions, writing tests to increae conformance coverage, and -release-informaing bots that help ensure no new Kubernetes endpoints are added without +conformance submissions, writing tests to increase conformance coverage, and +release-informing bots that help ensure no new Kubernetes endpoints are added without tests. diff --git a/content/projects/kubernetes-infra.org b/content/projects/kubernetes-infra.org index d35e296..c5194c9 100644 --- a/content/projects/kubernetes-infra.org +++ b/content/projects/kubernetes-infra.org @@ -2,8 +2,9 @@ #+started: 2021 #+status: active #+priority: 4 -#+externalUrl: https://kubernetes.io/blog/2020/05/27/an-introduction-to-the-k8s-infrastructure-working-group/ - -Our team works regularly with the kubernetes infra working group, to help +#+elink: https://kubernetes.io/blog/2020/05/27/an-introduction-to-the-k8s-infrastructure-working-group/ +#+type: tech +#+image: /assets/stephen-testing.jpg +Our team works regularly with the Kubernetes infra working group, to help distribute the infrastructural load of the Kubernetes project across multiple community providers to help -ensure the long-term sustainabality of kubernetes development. +ensure the long-term sustainability of Kubernetes development. diff --git a/content/projects/mentoring.org b/content/projects/mentoring.org new file mode 100644 index 0000000..800b5bf --- /dev/null +++ b/content/projects/mentoring.org @@ -0,0 +1,9 @@ +#+title: Mentoring +#+started: 2018 +#+status: active +#+priority: 1 +#+elink: +#+type: edu +#+image: /assets/Expo23-4.jpg + +We're passionate about empowering the next generation of technologists, servant and community leaders, innovators and disruptors through dedicated mentoring. \ No newline at end of file diff --git a/content/projects/resource-development.org b/content/projects/resource-development.org new file mode 100644 index 0000000..9e51ed1 --- /dev/null +++ b/content/projects/resource-development.org @@ -0,0 +1,9 @@ +#+title: Resource Development +#+started: 2018 +#+status: active +#+priority: 1 +#+elink: +#+type: edu +#+image: /assets/resource.jpg + +"The right tools are the bridge between curiosity and knowledge." (Anon), which is why **ii** designs a range of learning tools and strategies to help make sense of the world of tech! diff --git a/content/projects/ublue.org b/content/projects/ublue.org index 0e3d622..1591bed 100644 --- a/content/projects/ublue.org +++ b/content/projects/ublue.org @@ -1,6 +1,9 @@ -#+title: Ublue +#+title: Coop Mode #+started: 2023 #+status: pending +#+type: tech +#+image: /assets/bootable.jpg +#+elink: https://ii.coop -This is an experiment with our something or other to do cool stuff \ No newline at end of file +Cloud based solution to help people be in the same space, on the same page. \ No newline at end of file diff --git a/content/team/abby-crimlis.org b/content/team/abby-crimlis.org index 9d56e13..b524119 100644 --- a/content/team/abby-crimlis.org +++ b/content/team/abby-crimlis.org @@ -1,5 +1,10 @@ #+title: Abby Crimlis -#+photo: /assets/ii-fresh.png +#+photo: /images/profiles/abby.jpeg #+active: true -Abby is great and an awesome member of the team! + +Abby serves as a Cloud Native Technical Engineer and Educational Outreach Specialist at ii. + +She blends technical expertise with educational outreach. + +With a passion for fostering curiosity and self-confidence across diverse age groups, she designs and implements innovative programs, gets involved in engaging events, and collaborates with local organisations throughout the Bay of Plenty region diff --git a/content/team/caleb-woodbine.org b/content/team/caleb-woodbine.org index a9c2802..64164ac 100644 --- a/content/team/caleb-woodbine.org +++ b/content/team/caleb-woodbine.org @@ -1,5 +1,5 @@ #+title: Caleb Woodbine -#+active: true +#+active: false #+joined: 2019 #+photo: /images/profiles/caleb-woodbine.jpg diff --git a/content/team/jay-tihema.org b/content/team/jay-tihema.org index 9794abb..15ca07a 100644 --- a/content/team/jay-tihema.org +++ b/content/team/jay-tihema.org @@ -2,4 +2,4 @@ #+photo: /images/profiles/jay-tihema.jpg #+active: true -Jay is awesome! +Jay is awesome and a valued member of our team! Bio coming soon \ No newline at end of file diff --git a/content/team/zach-mandeville.org b/content/team/zach-mandeville.org index 021eb55..5a0ddb3 100644 --- a/content/team/zach-mandeville.org +++ b/content/team/zach-mandeville.org @@ -1,6 +1,6 @@ #+title: Zach Mandeville #+email: zz@ii.coop #+photo: /images/profiles/zach-mandeville.png -#+active: true +#+active: false Zach is a software engineer at ii. He loves sharing the excitement and awesome potential of technology through his work, storytelling, and mad science projects. diff --git a/static/assets/apisnoop.png b/static/assets/apisnoop.png new file mode 100644 index 0000000..42af027 Binary files /dev/null and b/static/assets/apisnoop.png differ diff --git a/static/assets/ii-fresh.png b/static/assets/ii-fresh.png index d41a37a..a9439df 100644 Binary files a/static/assets/ii-fresh.png and b/static/assets/ii-fresh.png differ diff --git a/static/assets/logo.png b/static/assets/logo.png deleted file mode 100644 index 959d53a..0000000 Binary files a/static/assets/logo.png and /dev/null differ diff --git a/static/assets/nav-logo.png b/static/assets/nav-logo.png new file mode 100644 index 0000000..0ea2c8c Binary files /dev/null and b/static/assets/nav-logo.png differ diff --git a/static/images/profiles/abby.jpeg b/static/images/profiles/abby.jpeg new file mode 100644 index 0000000..118a9e8 Binary files /dev/null and b/static/images/profiles/abby.jpeg differ diff --git a/static/js/particles.js b/static/js/particles.js new file mode 100644 index 0000000..064c89f --- /dev/null +++ b/static/js/particles.js @@ -0,0 +1,72 @@ +particlesJS("particles-js", { + "particles": { + "number": { + "value": 80, + "density": { + "enable": true, + "value_area": 900 + } + }, + "color": { + "value": "#3a3b3c" + }, + "shape": { + "type": "circle", + "stroke": { + "width":1, + "color": "#3a3b3c", + "opacity": "0.2" + }, + "polygon": { + "nb_sides": 12 + }, + + }, + "opacity": { + "value": 0.1, + "random": false, + "anim": { + "enable": false, + "speed": 1, + "opacity_min": 0.1, + "sync": false + } + }, + "size": { + "value": 2, + "random": true, + "anim": { + "enable": false, + "speed": 10, + "size_min": 0.2, + "sync": false + } + }, + "move": { + "enable": true, + "speed": 3, + "direction": "none", + "random": true, + "straight": false, + "out_mode": "out", + "bounce": false, + "attract": { + "enable": false, + "rotateX": 600, + "rotateY": 1200 + } + }, + "line_linked": { + "enable": true, + "distance": 150, + "color": "#5A5A5A", // Change the color to dark blue (#001d3d) + "opacity": 0.2, + "width": 1 + }, + }, + + "interactivity": { + // interactivity settings... + }, + "retina_detect": true + }); \ No newline at end of file diff --git a/static/js/particles.min.js b/static/js/particles.min.js new file mode 100644 index 0000000..b3d46d1 --- /dev/null +++ b/static/js/particles.min.js @@ -0,0 +1,9 @@ +/* ----------------------------------------------- +/* Author : Vincent Garreau - vincentgarreau.com +/* MIT license: http://opensource.org/licenses/MIT +/* Demo / Generator : vincentgarreau.com/particles.js +/* GitHub : github.com/VincentGarreau/particles.js +/* How to use? : Check the GitHub README +/* v2.0.0 +/* ----------------------------------------------- */ +function hexToRgb(e){var a=/^#?([a-f\d])([a-f\d])([a-f\d])$/i;e=e.replace(a,function(e,a,t,i){return a+a+t+t+i+i});var t=/^#?([a-f\d]{2})([a-f\d]{2})([a-f\d]{2})$/i.exec(e);return t?{r:parseInt(t[1],16),g:parseInt(t[2],16),b:parseInt(t[3],16)}:null}function clamp(e,a,t){return Math.min(Math.max(e,a),t)}function isInArray(e,a){return a.indexOf(e)>-1}var pJS=function(e,a){var t=document.querySelector("#"+e+" > .particles-js-canvas-el");this.pJS={canvas:{el:t,w:t.offsetWidth,h:t.offsetHeight},particles:{number:{value:400,density:{enable:!0,value_area:800}},color:{value:"#fff"},shape:{type:"circle",stroke:{width:0,color:"#ff0000"},polygon:{nb_sides:5},image:{src:"",width:100,height:100}},opacity:{value:1,random:!1,anim:{enable:!1,speed:2,opacity_min:0,sync:!1}},size:{value:20,random:!1,anim:{enable:!1,speed:20,size_min:0,sync:!1}},line_linked:{enable:!0,distance:100,color:"#fff",opacity:1,width:1},move:{enable:!0,speed:2,direction:"none",random:!1,straight:!1,out_mode:"out",bounce:!1,attract:{enable:!1,rotateX:3e3,rotateY:3e3}},array:[]},interactivity:{detect_on:"canvas",events:{onhover:{enable:!0,mode:"grab"},onclick:{enable:!0,mode:"push"},resize:!0},modes:{grab:{distance:100,line_linked:{opacity:1}},bubble:{distance:200,size:80,duration:.4},repulse:{distance:200,duration:.4},push:{particles_nb:4},remove:{particles_nb:2}},mouse:{}},retina_detect:!1,fn:{interact:{},modes:{},vendors:{}},tmp:{}};var i=this.pJS;a&&Object.deepExtend(i,a),i.tmp.obj={size_value:i.particles.size.value,size_anim_speed:i.particles.size.anim.speed,move_speed:i.particles.move.speed,line_linked_distance:i.particles.line_linked.distance,line_linked_width:i.particles.line_linked.width,mode_grab_distance:i.interactivity.modes.grab.distance,mode_bubble_distance:i.interactivity.modes.bubble.distance,mode_bubble_size:i.interactivity.modes.bubble.size,mode_repulse_distance:i.interactivity.modes.repulse.distance},i.fn.retinaInit=function(){i.retina_detect&&window.devicePixelRatio>1?(i.canvas.pxratio=window.devicePixelRatio,i.tmp.retina=!0):(i.canvas.pxratio=1,i.tmp.retina=!1),i.canvas.w=i.canvas.el.offsetWidth*i.canvas.pxratio,i.canvas.h=i.canvas.el.offsetHeight*i.canvas.pxratio,i.particles.size.value=i.tmp.obj.size_value*i.canvas.pxratio,i.particles.size.anim.speed=i.tmp.obj.size_anim_speed*i.canvas.pxratio,i.particles.move.speed=i.tmp.obj.move_speed*i.canvas.pxratio,i.particles.line_linked.distance=i.tmp.obj.line_linked_distance*i.canvas.pxratio,i.interactivity.modes.grab.distance=i.tmp.obj.mode_grab_distance*i.canvas.pxratio,i.interactivity.modes.bubble.distance=i.tmp.obj.mode_bubble_distance*i.canvas.pxratio,i.particles.line_linked.width=i.tmp.obj.line_linked_width*i.canvas.pxratio,i.interactivity.modes.bubble.size=i.tmp.obj.mode_bubble_size*i.canvas.pxratio,i.interactivity.modes.repulse.distance=i.tmp.obj.mode_repulse_distance*i.canvas.pxratio},i.fn.canvasInit=function(){i.canvas.ctx=i.canvas.el.getContext("2d")},i.fn.canvasSize=function(){i.canvas.el.width=i.canvas.w,i.canvas.el.height=i.canvas.h,i&&i.interactivity.events.resize&&window.addEventListener("resize",function(){i.canvas.w=i.canvas.el.offsetWidth,i.canvas.h=i.canvas.el.offsetHeight,i.tmp.retina&&(i.canvas.w*=i.canvas.pxratio,i.canvas.h*=i.canvas.pxratio),i.canvas.el.width=i.canvas.w,i.canvas.el.height=i.canvas.h,i.particles.move.enable||(i.fn.particlesEmpty(),i.fn.particlesCreate(),i.fn.particlesDraw(),i.fn.vendors.densityAutoParticles()),i.fn.vendors.densityAutoParticles()})},i.fn.canvasPaint=function(){i.canvas.ctx.fillRect(0,0,i.canvas.w,i.canvas.h)},i.fn.canvasClear=function(){i.canvas.ctx.clearRect(0,0,i.canvas.w,i.canvas.h)},i.fn.particle=function(e,a,t){if(this.radius=(i.particles.size.random?Math.random():1)*i.particles.size.value,i.particles.size.anim.enable&&(this.size_status=!1,this.vs=i.particles.size.anim.speed/100,i.particles.size.anim.sync||(this.vs=this.vs*Math.random())),this.x=t?t.x:Math.random()*i.canvas.w,this.y=t?t.y:Math.random()*i.canvas.h,this.x>i.canvas.w-2*this.radius?this.x=this.x-this.radius:this.x<2*this.radius&&(this.x=this.x+this.radius),this.y>i.canvas.h-2*this.radius?this.y=this.y-this.radius:this.y<2*this.radius&&(this.y=this.y+this.radius),i.particles.move.bounce&&i.fn.vendors.checkOverlap(this,t),this.color={},"object"==typeof e.value)if(e.value instanceof Array){var s=e.value[Math.floor(Math.random()*i.particles.color.value.length)];this.color.rgb=hexToRgb(s)}else void 0!=e.value.r&&void 0!=e.value.g&&void 0!=e.value.b&&(this.color.rgb={r:e.value.r,g:e.value.g,b:e.value.b}),void 0!=e.value.h&&void 0!=e.value.s&&void 0!=e.value.l&&(this.color.hsl={h:e.value.h,s:e.value.s,l:e.value.l});else"random"==e.value?this.color.rgb={r:Math.floor(256*Math.random())+0,g:Math.floor(256*Math.random())+0,b:Math.floor(256*Math.random())+0}:"string"==typeof e.value&&(this.color=e,this.color.rgb=hexToRgb(this.color.value));this.opacity=(i.particles.opacity.random?Math.random():1)*i.particles.opacity.value,i.particles.opacity.anim.enable&&(this.opacity_status=!1,this.vo=i.particles.opacity.anim.speed/100,i.particles.opacity.anim.sync||(this.vo=this.vo*Math.random()));var n={};switch(i.particles.move.direction){case"top":n={x:0,y:-1};break;case"top-right":n={x:.5,y:-.5};break;case"right":n={x:1,y:-0};break;case"bottom-right":n={x:.5,y:.5};break;case"bottom":n={x:0,y:1};break;case"bottom-left":n={x:-.5,y:1};break;case"left":n={x:-1,y:0};break;case"top-left":n={x:-.5,y:-.5};break;default:n={x:0,y:0}}i.particles.move.straight?(this.vx=n.x,this.vy=n.y,i.particles.move.random&&(this.vx=this.vx*Math.random(),this.vy=this.vy*Math.random())):(this.vx=n.x+Math.random()-.5,this.vy=n.y+Math.random()-.5),this.vx_i=this.vx,this.vy_i=this.vy;var r=i.particles.shape.type;if("object"==typeof r){if(r instanceof Array){var c=r[Math.floor(Math.random()*r.length)];this.shape=c}}else this.shape=r;if("image"==this.shape){var o=i.particles.shape;this.img={src:o.image.src,ratio:o.image.width/o.image.height},this.img.ratio||(this.img.ratio=1),"svg"==i.tmp.img_type&&void 0!=i.tmp.source_svg&&(i.fn.vendors.createSvgImg(this),i.tmp.pushing&&(this.img.loaded=!1))}},i.fn.particle.prototype.draw=function(){function e(){i.canvas.ctx.drawImage(r,a.x-t,a.y-t,2*t,2*t/a.img.ratio)}var a=this;if(void 0!=a.radius_bubble)var t=a.radius_bubble;else var t=a.radius;if(void 0!=a.opacity_bubble)var s=a.opacity_bubble;else var s=a.opacity;if(a.color.rgb)var n="rgba("+a.color.rgb.r+","+a.color.rgb.g+","+a.color.rgb.b+","+s+")";else var n="hsla("+a.color.hsl.h+","+a.color.hsl.s+"%,"+a.color.hsl.l+"%,"+s+")";switch(i.canvas.ctx.fillStyle=n,i.canvas.ctx.beginPath(),a.shape){case"circle":i.canvas.ctx.arc(a.x,a.y,t,0,2*Math.PI,!1);break;case"edge":i.canvas.ctx.rect(a.x-t,a.y-t,2*t,2*t);break;case"triangle":i.fn.vendors.drawShape(i.canvas.ctx,a.x-t,a.y+t/1.66,2*t,3,2);break;case"polygon":i.fn.vendors.drawShape(i.canvas.ctx,a.x-t/(i.particles.shape.polygon.nb_sides/3.5),a.y-t/.76,2.66*t/(i.particles.shape.polygon.nb_sides/3),i.particles.shape.polygon.nb_sides,1);break;case"star":i.fn.vendors.drawShape(i.canvas.ctx,a.x-2*t/(i.particles.shape.polygon.nb_sides/4),a.y-t/1.52,2*t*2.66/(i.particles.shape.polygon.nb_sides/3),i.particles.shape.polygon.nb_sides,2);break;case"image":if("svg"==i.tmp.img_type)var r=a.img.obj;else var r=i.tmp.img_obj;r&&e()}i.canvas.ctx.closePath(),i.particles.shape.stroke.width>0&&(i.canvas.ctx.strokeStyle=i.particles.shape.stroke.color,i.canvas.ctx.lineWidth=i.particles.shape.stroke.width,i.canvas.ctx.stroke()),i.canvas.ctx.fill()},i.fn.particlesCreate=function(){for(var e=0;e=i.particles.opacity.value&&(a.opacity_status=!1),a.opacity+=a.vo):(a.opacity<=i.particles.opacity.anim.opacity_min&&(a.opacity_status=!0),a.opacity-=a.vo),a.opacity<0&&(a.opacity=0)),i.particles.size.anim.enable&&(1==a.size_status?(a.radius>=i.particles.size.value&&(a.size_status=!1),a.radius+=a.vs):(a.radius<=i.particles.size.anim.size_min&&(a.size_status=!0),a.radius-=a.vs),a.radius<0&&(a.radius=0)),"bounce"==i.particles.move.out_mode)var s={x_left:a.radius,x_right:i.canvas.w,y_top:a.radius,y_bottom:i.canvas.h};else var s={x_left:-a.radius,x_right:i.canvas.w+a.radius,y_top:-a.radius,y_bottom:i.canvas.h+a.radius};switch(a.x-a.radius>i.canvas.w?(a.x=s.x_left,a.y=Math.random()*i.canvas.h):a.x+a.radius<0&&(a.x=s.x_right,a.y=Math.random()*i.canvas.h),a.y-a.radius>i.canvas.h?(a.y=s.y_top,a.x=Math.random()*i.canvas.w):a.y+a.radius<0&&(a.y=s.y_bottom,a.x=Math.random()*i.canvas.w),i.particles.move.out_mode){case"bounce":a.x+a.radius>i.canvas.w?a.vx=-a.vx:a.x-a.radius<0&&(a.vx=-a.vx),a.y+a.radius>i.canvas.h?a.vy=-a.vy:a.y-a.radius<0&&(a.vy=-a.vy)}if(isInArray("grab",i.interactivity.events.onhover.mode)&&i.fn.modes.grabParticle(a),(isInArray("bubble",i.interactivity.events.onhover.mode)||isInArray("bubble",i.interactivity.events.onclick.mode))&&i.fn.modes.bubbleParticle(a),(isInArray("repulse",i.interactivity.events.onhover.mode)||isInArray("repulse",i.interactivity.events.onclick.mode))&&i.fn.modes.repulseParticle(a),i.particles.line_linked.enable||i.particles.move.attract.enable)for(var n=e+1;n0){var c=i.particles.line_linked.color_rgb_line;i.canvas.ctx.strokeStyle="rgba("+c.r+","+c.g+","+c.b+","+r+")",i.canvas.ctx.lineWidth=i.particles.line_linked.width,i.canvas.ctx.beginPath(),i.canvas.ctx.moveTo(e.x,e.y),i.canvas.ctx.lineTo(a.x,a.y),i.canvas.ctx.stroke(),i.canvas.ctx.closePath()}}},i.fn.interact.attractParticles=function(e,a){var t=e.x-a.x,s=e.y-a.y,n=Math.sqrt(t*t+s*s);if(n<=i.particles.line_linked.distance){var r=t/(1e3*i.particles.move.attract.rotateX),c=s/(1e3*i.particles.move.attract.rotateY);e.vx-=r,e.vy-=c,a.vx+=r,a.vy+=c}},i.fn.interact.bounceParticles=function(e,a){var t=e.x-a.x,i=e.y-a.y,s=Math.sqrt(t*t+i*i),n=e.radius+a.radius;n>=s&&(e.vx=-e.vx,e.vy=-e.vy,a.vx=-a.vx,a.vy=-a.vy)},i.fn.modes.pushParticles=function(e,a){i.tmp.pushing=!0;for(var t=0;e>t;t++)i.particles.array.push(new i.fn.particle(i.particles.color,i.particles.opacity.value,{x:a?a.pos_x:Math.random()*i.canvas.w,y:a?a.pos_y:Math.random()*i.canvas.h})),t==e-1&&(i.particles.move.enable||i.fn.particlesDraw(),i.tmp.pushing=!1)},i.fn.modes.removeParticles=function(e){i.particles.array.splice(0,e),i.particles.move.enable||i.fn.particlesDraw()},i.fn.modes.bubbleParticle=function(e){function a(){e.opacity_bubble=e.opacity,e.radius_bubble=e.radius}function t(a,t,s,n,c){if(a!=t)if(i.tmp.bubble_duration_end){if(void 0!=s){var o=n-p*(n-a)/i.interactivity.modes.bubble.duration,l=a-o;d=a+l,"size"==c&&(e.radius_bubble=d),"opacity"==c&&(e.opacity_bubble=d)}}else if(r<=i.interactivity.modes.bubble.distance){if(void 0!=s)var v=s;else var v=n;if(v!=a){var d=n-p*(n-a)/i.interactivity.modes.bubble.duration;"size"==c&&(e.radius_bubble=d),"opacity"==c&&(e.opacity_bubble=d)}}else"size"==c&&(e.radius_bubble=void 0),"opacity"==c&&(e.opacity_bubble=void 0)}if(i.interactivity.events.onhover.enable&&isInArray("bubble",i.interactivity.events.onhover.mode)){var s=e.x-i.interactivity.mouse.pos_x,n=e.y-i.interactivity.mouse.pos_y,r=Math.sqrt(s*s+n*n),c=1-r/i.interactivity.modes.bubble.distance;if(r<=i.interactivity.modes.bubble.distance){if(c>=0&&"mousemove"==i.interactivity.status){if(i.interactivity.modes.bubble.size!=i.particles.size.value)if(i.interactivity.modes.bubble.size>i.particles.size.value){var o=e.radius+i.interactivity.modes.bubble.size*c;o>=0&&(e.radius_bubble=o)}else{var l=e.radius-i.interactivity.modes.bubble.size,o=e.radius-l*c;o>0?e.radius_bubble=o:e.radius_bubble=0}if(i.interactivity.modes.bubble.opacity!=i.particles.opacity.value)if(i.interactivity.modes.bubble.opacity>i.particles.opacity.value){var v=i.interactivity.modes.bubble.opacity*c;v>e.opacity&&v<=i.interactivity.modes.bubble.opacity&&(e.opacity_bubble=v)}else{var v=e.opacity-(i.particles.opacity.value-i.interactivity.modes.bubble.opacity)*c;v=i.interactivity.modes.bubble.opacity&&(e.opacity_bubble=v)}}}else a();"mouseleave"==i.interactivity.status&&a()}else if(i.interactivity.events.onclick.enable&&isInArray("bubble",i.interactivity.events.onclick.mode)){if(i.tmp.bubble_clicking){var s=e.x-i.interactivity.mouse.click_pos_x,n=e.y-i.interactivity.mouse.click_pos_y,r=Math.sqrt(s*s+n*n),p=((new Date).getTime()-i.interactivity.mouse.click_time)/1e3;p>i.interactivity.modes.bubble.duration&&(i.tmp.bubble_duration_end=!0),p>2*i.interactivity.modes.bubble.duration&&(i.tmp.bubble_clicking=!1,i.tmp.bubble_duration_end=!1)}i.tmp.bubble_clicking&&(t(i.interactivity.modes.bubble.size,i.particles.size.value,e.radius_bubble,e.radius,"size"),t(i.interactivity.modes.bubble.opacity,i.particles.opacity.value,e.opacity_bubble,e.opacity,"opacity"))}},i.fn.modes.repulseParticle=function(e){function a(){var a=Math.atan2(d,p);if(e.vx=u*Math.cos(a),e.vy=u*Math.sin(a),"bounce"==i.particles.move.out_mode){var t={x:e.x+e.vx,y:e.y+e.vy};t.x+e.radius>i.canvas.w?e.vx=-e.vx:t.x-e.radius<0&&(e.vx=-e.vx),t.y+e.radius>i.canvas.h?e.vy=-e.vy:t.y-e.radius<0&&(e.vy=-e.vy)}}if(i.interactivity.events.onhover.enable&&isInArray("repulse",i.interactivity.events.onhover.mode)&&"mousemove"==i.interactivity.status){var t=e.x-i.interactivity.mouse.pos_x,s=e.y-i.interactivity.mouse.pos_y,n=Math.sqrt(t*t+s*s),r={x:t/n,y:s/n},c=i.interactivity.modes.repulse.distance,o=100,l=clamp(1/c*(-1*Math.pow(n/c,2)+1)*c*o,0,50),v={x:e.x+r.x*l,y:e.y+r.y*l};"bounce"==i.particles.move.out_mode?(v.x-e.radius>0&&v.x+e.radius0&&v.y+e.radius=m&&a()}else 0==i.tmp.repulse_clicking&&(e.vx=e.vx_i,e.vy=e.vy_i)},i.fn.modes.grabParticle=function(e){if(i.interactivity.events.onhover.enable&&"mousemove"==i.interactivity.status){var a=e.x-i.interactivity.mouse.pos_x,t=e.y-i.interactivity.mouse.pos_y,s=Math.sqrt(a*a+t*t);if(s<=i.interactivity.modes.grab.distance){var n=i.interactivity.modes.grab.line_linked.opacity-s/(1/i.interactivity.modes.grab.line_linked.opacity)/i.interactivity.modes.grab.distance;if(n>0){var r=i.particles.line_linked.color_rgb_line;i.canvas.ctx.strokeStyle="rgba("+r.r+","+r.g+","+r.b+","+n+")",i.canvas.ctx.lineWidth=i.particles.line_linked.width,i.canvas.ctx.beginPath(),i.canvas.ctx.moveTo(e.x,e.y),i.canvas.ctx.lineTo(i.interactivity.mouse.pos_x,i.interactivity.mouse.pos_y),i.canvas.ctx.stroke(),i.canvas.ctx.closePath()}}}},i.fn.vendors.eventsListeners=function(){"window"==i.interactivity.detect_on?i.interactivity.el=window:i.interactivity.el=i.canvas.el,(i.interactivity.events.onhover.enable||i.interactivity.events.onclick.enable)&&(i.interactivity.el.addEventListener("mousemove",function(e){if(i.interactivity.el==window)var a=e.clientX,t=e.clientY;else var a=e.offsetX||e.clientX,t=e.offsetY||e.clientY;i.interactivity.mouse.pos_x=a,i.interactivity.mouse.pos_y=t,i.tmp.retina&&(i.interactivity.mouse.pos_x*=i.canvas.pxratio,i.interactivity.mouse.pos_y*=i.canvas.pxratio),i.interactivity.status="mousemove"}),i.interactivity.el.addEventListener("mouseleave",function(e){i.interactivity.mouse.pos_x=null,i.interactivity.mouse.pos_y=null,i.interactivity.status="mouseleave"})),i.interactivity.events.onclick.enable&&i.interactivity.el.addEventListener("click",function(){if(i.interactivity.mouse.click_pos_x=i.interactivity.mouse.pos_x,i.interactivity.mouse.click_pos_y=i.interactivity.mouse.pos_y,i.interactivity.mouse.click_time=(new Date).getTime(),i.interactivity.events.onclick.enable)switch(i.interactivity.events.onclick.mode){case"push":i.particles.move.enable?i.fn.modes.pushParticles(i.interactivity.modes.push.particles_nb,i.interactivity.mouse):1==i.interactivity.modes.push.particles_nb?i.fn.modes.pushParticles(i.interactivity.modes.push.particles_nb,i.interactivity.mouse):i.interactivity.modes.push.particles_nb>1&&i.fn.modes.pushParticles(i.interactivity.modes.push.particles_nb);break;case"remove":i.fn.modes.removeParticles(i.interactivity.modes.remove.particles_nb);break;case"bubble":i.tmp.bubble_clicking=!0;break;case"repulse":i.tmp.repulse_clicking=!0,i.tmp.repulse_count=0,i.tmp.repulse_finish=!1,setTimeout(function(){i.tmp.repulse_clicking=!1},1e3*i.interactivity.modes.repulse.duration)}})},i.fn.vendors.densityAutoParticles=function(){if(i.particles.number.density.enable){var e=i.canvas.el.width*i.canvas.el.height/1e3;i.tmp.retina&&(e/=2*i.canvas.pxratio);var a=e*i.particles.number.value/i.particles.number.density.value_area,t=i.particles.array.length-a;0>t?i.fn.modes.pushParticles(Math.abs(t)):i.fn.modes.removeParticles(t)}},i.fn.vendors.checkOverlap=function(e,a){for(var t=0;tv;v++)e.lineTo(i,0),e.translate(i,0),e.rotate(l);e.fill(),e.restore()},i.fn.vendors.exportImg=function(){window.open(i.canvas.el.toDataURL("image/png"),"_blank")},i.fn.vendors.loadImg=function(e){if(i.tmp.img_error=void 0,""!=i.particles.shape.image.src)if("svg"==e){var a=new XMLHttpRequest;a.open("GET",i.particles.shape.image.src),a.onreadystatechange=function(e){4==a.readyState&&(200==a.status?(i.tmp.source_svg=e.currentTarget.response,i.fn.vendors.checkBeforeDraw()):(console.log("Error pJS - Image not found"),i.tmp.img_error=!0))},a.send()}else{var t=new Image;t.addEventListener("load",function(){i.tmp.img_obj=t,i.fn.vendors.checkBeforeDraw()}),t.src=i.particles.shape.image.src}else console.log("Error pJS - No image.src"),i.tmp.img_error=!0},i.fn.vendors.draw=function(){"image"==i.particles.shape.type?"svg"==i.tmp.img_type?i.tmp.count_svg>=i.particles.number.value?(i.fn.particlesDraw(),i.particles.move.enable?i.fn.drawAnimFrame=requestAnimFrame(i.fn.vendors.draw):cancelRequestAnimFrame(i.fn.drawAnimFrame)):i.tmp.img_error||(i.fn.drawAnimFrame=requestAnimFrame(i.fn.vendors.draw)):void 0!=i.tmp.img_obj?(i.fn.particlesDraw(),i.particles.move.enable?i.fn.drawAnimFrame=requestAnimFrame(i.fn.vendors.draw):cancelRequestAnimFrame(i.fn.drawAnimFrame)):i.tmp.img_error||(i.fn.drawAnimFrame=requestAnimFrame(i.fn.vendors.draw)):(i.fn.particlesDraw(),i.particles.move.enable?i.fn.drawAnimFrame=requestAnimFrame(i.fn.vendors.draw):cancelRequestAnimFrame(i.fn.drawAnimFrame))},i.fn.vendors.checkBeforeDraw=function(){"image"==i.particles.shape.type?"svg"==i.tmp.img_type&&void 0==i.tmp.source_svg?i.tmp.checkAnimFrame=requestAnimFrame(check):(cancelRequestAnimFrame(i.tmp.checkAnimFrame),i.tmp.img_error||(i.fn.vendors.init(),i.fn.vendors.draw())):(i.fn.vendors.init(),i.fn.vendors.draw())},i.fn.vendors.init=function(){i.fn.retinaInit(),i.fn.canvasInit(),i.fn.canvasSize(),i.fn.canvasPaint(),i.fn.particlesCreate(),i.fn.vendors.densityAutoParticles(),i.particles.line_linked.color_rgb_line=hexToRgb(i.particles.line_linked.color)},i.fn.vendors.start=function(){isInArray("image",i.particles.shape.type)?(i.tmp.img_type=i.particles.shape.image.src.substr(i.particles.shape.image.src.length-3),i.fn.vendors.loadImg(i.tmp.img_type)):i.fn.vendors.checkBeforeDraw()},i.fn.vendors.eventsListeners(),i.fn.vendors.start()};Object.deepExtend=function(e,a){for(var t in a)a[t]&&a[t].constructor&&a[t].constructor===Object?(e[t]=e[t]||{},arguments.callee(e[t],a[t])):e[t]=a[t];return e},window.requestAnimFrame=function(){return window.requestAnimationFrame||window.webkitRequestAnimationFrame||window.mozRequestAnimationFrame||window.oRequestAnimationFrame||window.msRequestAnimationFrame||function(e){window.setTimeout(e,1e3/60)}}(),window.cancelRequestAnimFrame=function(){return window.cancelAnimationFrame||window.webkitCancelRequestAnimationFrame||window.mozCancelRequestAnimationFrame||window.oCancelRequestAnimationFrame||window.msCancelRequestAnimationFrame||clearTimeout}(),window.pJSDom=[],window.particlesJS=function(e,a){"string"!=typeof e&&(a=e,e="particles-js"),e||(e="particles-js");var t=document.getElementById(e),i="particles-js-canvas-el",s=t.getElementsByClassName(i);if(s.length)for(;s.length>0;)t.removeChild(s[0]);var n=document.createElement("canvas");n.className=i,n.style.width="100%",n.style.height="100%";var r=document.getElementById(e).appendChild(n);null!=r&&pJSDom.push(new pJS(e,a))},window.particlesJS.load=function(e,a,t){var i=new XMLHttpRequest;i.open("GET",a),i.onreadystatechange=function(a){if(4==i.readyState)if(200==i.status){var s=JSON.parse(a.currentTarget.response);window.particlesJS(e,s),t&&t()}else console.log("Error pJS - XMLHttpRequest status: "+i.status),console.log("Error pJS - File config not found")},i.send()}; \ No newline at end of file diff --git a/themes/ii/layouts/_default/baseof.html b/themes/ii/layouts/_default/baseof.html index ee01af2..6dc55fa 100644 --- a/themes/ii/layouts/_default/baseof.html +++ b/themes/ii/layouts/_default/baseof.html @@ -2,7 +2,7 @@ {{- partial "head.html" . -}} - {{- partial "header.html" . -}} + {{ partial "header.html" (dict "logo" "../static/assets/nav-logo.png") }}
{{- block "main" . }}{{- end }}
diff --git a/themes/ii/layouts/_default/list.html b/themes/ii/layouts/_default/list.html index 31e260f..6bc91b5 100644 --- a/themes/ii/layouts/_default/list.html +++ b/themes/ii/layouts/_default/list.html @@ -9,13 +9,11 @@

{{ .Title }}

  • {{ .Title }}
  • diff --git a/themes/ii/layouts/contact/list.html b/themes/ii/layouts/contact/list.html index 442ed29..a4ac931 100644 --- a/themes/ii/layouts/contact/list.html +++ b/themes/ii/layouts/contact/list.html @@ -4,9 +4,9 @@

    {{ .Title }}

    {{ .Content | emojify }}
    +
    + id="contact_form">
    @@ -24,6 +24,47 @@

    {{ .Title }}

    +
    +
    + +
    +
    + +
    +
    + + +
    + {{ end }} diff --git a/themes/ii/layouts/partials/footer.html b/themes/ii/layouts/partials/footer.html index 51c0f74..7bcb256 100644 --- a/themes/ii/layouts/partials/footer.html +++ b/themes/ii/layouts/partials/footer.html @@ -1,12 +1,43 @@ + \ No newline at end of file diff --git a/themes/ii/layouts/partials/head.html b/themes/ii/layouts/partials/head.html index 77991b4..623e915 100644 --- a/themes/ii/layouts/partials/head.html +++ b/themes/ii/layouts/partials/head.html @@ -5,6 +5,10 @@ + + + + diff --git a/themes/ii/layouts/partials/header.html b/themes/ii/layouts/partials/header.html index ed299d9..c03a9b4 100644 --- a/themes/ii/layouts/partials/header.html +++ b/themes/ii/layouts/partials/header.html @@ -1,14 +1,103 @@ -
    - +
    + + + + \ No newline at end of file diff --git a/themes/ii/layouts/post/list.html b/themes/ii/layouts/post/list.html index 8c48bfa..a1a17e1 100644 --- a/themes/ii/layouts/post/list.html +++ b/themes/ii/layouts/post/list.html @@ -9,17 +9,15 @@

    {{ .Title }}

  • {{ .Title }}
  • {{ end }} -{{ end }} \ No newline at end of file +{{ end }} diff --git a/themes/ii/layouts/projects/list.html b/themes/ii/layouts/projects/list.html index 445267b..30ecd5f 100644 --- a/themes/ii/layouts/projects/list.html +++ b/themes/ii/layouts/projects/list.html @@ -4,20 +4,113 @@

    {{ .Title }}

    - {{ .Content | emojify }} + {{ .Content | emojify }}
    -
      - {{ range sort (where .Pages "Params.status" "eq" "active") "Params.priority" "asc"}} -
    • - {{ .Title }} -
      - {{ .Content | emojify }} - {{ .Params.url }} - - Learn more + +
      + +
      +
        + {{ $techPages := where .Pages "Params.type" "==" "tech" }} + {{ range $index, $page := sort $techPages "Params.priority" "asc"}} +
      • +

        {{ .Title }}

        +
        + +
        + +
      • + {{ if and (eq (mod (add $index 1) 2) 0) (ne $index (sub (len $techPages) 1)) }} +
      +
        + {{ end }} + {{ end }} +
      +

      Technical Contribution

      + +
      + + + + + +
      +
        + {{ $eduPages := where .Pages "Params.type" "eq" "edu" }} + {{ range $index, $page := sort $eduPages "Params.priority" "asc"}} +
      • +

        {{ .Title }}

        +
        + +
        + +
      • + {{ if and (eq (mod (add $index 1) 2) 0) (ne $index (sub (len $eduPages) 1)) }} +
      +
        + {{ end }} + {{ end }} +
      +

      Educational Contribution

      + -
    • - {{ end }} -
    + + + + + {{ end }} diff --git a/themes/ii/layouts/team/list.html b/themes/ii/layouts/team/list.html index ebd4812..e04a749 100644 --- a/themes/ii/layouts/team/list.html +++ b/themes/ii/layouts/team/list.html @@ -7,7 +7,7 @@

    Our Team

    {{ range where .Pages "Params.active" "eq" "true" }}
  • {{ .Title }} -
    +
    diff --git a/themes/ii/static/assets/Expo23-4.jpg b/themes/ii/static/assets/Expo23-4.jpg new file mode 100644 index 0000000..8cf8ce8 Binary files /dev/null and b/themes/ii/static/assets/Expo23-4.jpg differ diff --git a/themes/ii/static/assets/IMG_0162.jpg b/themes/ii/static/assets/IMG_0162.jpg new file mode 100644 index 0000000..eb82b4c Binary files /dev/null and b/themes/ii/static/assets/IMG_0162.jpg differ diff --git a/themes/ii/static/assets/apisnoop.png b/themes/ii/static/assets/apisnoop.png new file mode 100644 index 0000000..42af027 Binary files /dev/null and b/themes/ii/static/assets/apisnoop.png differ diff --git a/themes/ii/static/assets/bootable.jpg b/themes/ii/static/assets/bootable.jpg new file mode 100644 index 0000000..36c8170 Binary files /dev/null and b/themes/ii/static/assets/bootable.jpg differ diff --git a/themes/ii/static/assets/dark-mode-logo.png b/themes/ii/static/assets/dark-mode-logo.png new file mode 100644 index 0000000..c7202e3 Binary files /dev/null and b/themes/ii/static/assets/dark-mode-logo.png differ diff --git a/themes/ii/static/assets/github.png b/themes/ii/static/assets/github.png new file mode 100644 index 0000000..112844f Binary files /dev/null and b/themes/ii/static/assets/github.png differ diff --git a/themes/ii/static/assets/gitlab.png b/themes/ii/static/assets/gitlab.png new file mode 100644 index 0000000..71d0494 Binary files /dev/null and b/themes/ii/static/assets/gitlab.png differ diff --git a/themes/ii/static/assets/k8s.svg b/themes/ii/static/assets/k8s.svg new file mode 100644 index 0000000..bedd3b8 --- /dev/null +++ b/themes/ii/static/assets/k8s.svg @@ -0,0 +1,84 @@ + + + + + + + + + + image/svg+xml + + + + + + + + + + + + diff --git a/themes/ii/static/assets/nav-logo.png b/themes/ii/static/assets/nav-logo.png new file mode 100644 index 0000000..3d076e1 Binary files /dev/null and b/themes/ii/static/assets/nav-logo.png differ diff --git a/themes/ii/static/assets/resource.jpg b/themes/ii/static/assets/resource.jpg new file mode 100644 index 0000000..ff3f82a Binary files /dev/null and b/themes/ii/static/assets/resource.jpg differ diff --git a/themes/ii/static/assets/shadowTech1.jpg b/themes/ii/static/assets/shadowTech1.jpg new file mode 100644 index 0000000..dc0d9ac Binary files /dev/null and b/themes/ii/static/assets/shadowTech1.jpg differ diff --git a/themes/ii/static/assets/stephen-testing.jpg b/themes/ii/static/assets/stephen-testing.jpg new file mode 100644 index 0000000..48faa90 Binary files /dev/null and b/themes/ii/static/assets/stephen-testing.jpg differ diff --git a/themes/ii/static/css/main.css b/themes/ii/static/css/main.css index 17eb1b9..16428d8 100644 --- a/themes/ii/static/css/main.css +++ b/themes/ii/static/css/main.css @@ -1,11 +1,15 @@ html { font-size: var(--base-pt); + overflow-x: hidden!important; + } body { height: 100%; + width:100vw; font-family: var(--body-font); font-weight: 300; + overflow-x: hidden!important; } main { @@ -23,11 +27,10 @@ a { } a:hover { - color: var(--teal); + color: var(--yellow); } - -a:visited { - color: var(--pink_dark); +code{ + color: black; } nav { @@ -40,15 +43,17 @@ nav { } nav a { text-decoration: none; - color: var(--black); + color: black; + font-weight: bold; } nav a:hover { - color: var(--teal); + color: var(--yellow); } .navbar__right { display: flex; - gap: 1rem; + gap: 4rem; flex-wrap: wrap; + font-weight: 800; } @media(max-width: 667px) { .navbar { @@ -58,14 +63,12 @@ nav a:hover { align-items: center; row-gap: var(--font-xxs); } - .navbar__left { - /* width: 100%; */ - /* text-align: center; */ - } + .navbar__right { justify-content: center; /* margin-left: 50vw; */ row-gap: 0.5rem; + gap: 1rem; } } @@ -75,13 +78,16 @@ nav.back-nav { footer { display: flex; - background: var(--blue_dark); + background: black; max-width: 100%; color: white; justify-content: space-between; - align-items: flex-start; + align-items: center; padding: var(--space-m); } +.footer__left{ + width:5%; +} .contact-details li { list-style: none; @@ -89,15 +95,25 @@ footer { .contact-details { padding-left: 0; + display: flex; + justify-content: space-between; + margin:auto; +} +.contact-details > li { + margin:5px; +} +.contact-details > li > a > div { + margin:auto; +} +.contact-details > li > a:hover{ + color: var(--yellow) } - header .logo { font-size: var(--font-xl); color: var(--blue_dark); padding: 0; } - .footer_logo { display: flex; justify-content: center; @@ -128,7 +144,7 @@ header .logo { } .center-column { - max-width: var(--readable-width); + max-width: 60%; margin: auto; display: flex; flex-flow: column; @@ -156,6 +172,7 @@ figure img { figure.splash-image { margin: 0; max-width: 60%; + width:300px; } @@ -166,11 +183,14 @@ figure.splash-image { .center-column.readable-width { max-width: var(--readable-width); } +.centered-section{ + text-align: center; +} + .post-list { list-style-position: outside; text-indent: calc(var(--font-xxs) * -1); - margin } .post-metadata .divider { @@ -195,6 +215,9 @@ figure.splash-image { text-align: center; margin-bottom: 0; } + + +/* @media(max-width: 667px) { :root { --base-pt: 16px; @@ -310,6 +333,7 @@ figure.oversized.offcenter { .team-member { max-width: 33%; + padding:20px; list-style-type: none; @media(max-width: 667px) { max-width: 100%; @@ -332,6 +356,9 @@ figure.oversized.offcenter { .member-bio { font-size: var(--font-m); + max-width: 80%; + margin: auto; + } @@ -341,6 +368,10 @@ figure.oversized.offcenter { * Project listings **************/ +.no-cursor{ + display: none; +} + .project-list { padding: 0; list-style-type: none; @@ -454,8 +485,401 @@ a.project-link:hover { cursor: pointer; } -.contact-form button:active , -.contact-form button:focus , -.contact-form button:hover { - background: var(--teal_dark); -} \ No newline at end of file + + +/************** +* Home page +**************/ + +#particles-js { + position: absolute; + width: 100%; + height: 100%; + z-index: -10; +} +#home-banner{ + position: absolute; + top:0; + left:0; + height:100%; + z-index: -20; + opacity: 0.3; + filter: brightness(30%); + filter: grayscale(100%); +} +#home-banner > img{ + height:110%; + width:100%; + max-height: 130%; +} + +/************** +* Utilities +**************/ + +.overflow{ + overflow: hidden; +} + +.flex-row_outer { + width: 100%; + display: flex; + flex-direction: row; + margin-right: 4%; + align-items: center; + +} + +.flex-row { + display: flex; + flex-direction: row; + justify-content: center; + align-items: center; +} + +.flex-col { + display: flex; + flex-direction: column; +} + +.logo > img { + width: 200px; + height: 300px; + margin-left: 40px; +} +/************** +* Projects +**************/ +.projects-item { + display: flex; + flex-direction: column; + align-items: center; + text-align: center; +} + +.projects-item > h3 { + margin: 10px 0; +} + +.project-img { + width: 250px; + height: 150px; + margin: 5px; + border-radius: 20px; + background-color: grey; + transition: transform 0.3s ease-in-out; + cursor: pointer; + position: relative; + overflow: hidden; +} +.project-img > img{ + width: 100%; + filter: grayscale(100%); + position: absolute; + top:50%; + left:50%; + transform: translate(-50%,-50%); +} +.project-img > img:hover{ + filter: grayscale(50%); + +} +.project-img:hover { + transform: scale(1.1); + z-index: 10; + box-shadow: 0 0 15px rgba(0, 0, 0, 0.3); /* Adjust the shadow as needed */ +} + +.project-img::after { + position: absolute; + top: 50%; + left: 50%; + transform: translate(-50%, -50%); + color: white; + font-size: 15px; + width: 100%; + opacity: 0; + transition: opacity 0.3s ease-in-out; +} + + +.project-img:hover::after { + opacity: 1; +} + +.icon{ + text-align: center; +} +.modal { + display: none; + position: fixed; + top: 0; + left: 0; + width: 100%; + height: 100%; + background: rgba(0, 0, 0, 0.5); + justify-content: center; + align-items: center; + z-index: 20; +} + +.modal-content { + background: white; + padding: 20px; + border-radius: 10px; + box-shadow: 0 0 15px rgba(0, 0, 0, 0.3); + max-width: 80%; + max-height: 80%; + overflow-y: auto; +} +.learn-more-btn, +.close-btn { + background-color: var(--yellow); + color: white; + padding: 10px; + margin-right: 10px; + border: none; + border-radius: 5px; + cursor: pointer; +} + +.learn-more-btn:hover, +.close-btn:hover { + background-color: black; + color: white; +} +.logo-section > img{ + width:300px; + height:400px; +} + +/* CONTACT FORM */ +.contact-form{ + width:100%; + display: flex; + flex-direction: row; + align-items: flex-start; + margin-top: 50px; + pointer-events: all; +} +#contact_form{ + width:60%; +} + +#contact_submit{ + background-color: var(--yellow); +} + +.contact-col{ + display: flex; + flex-direction: column; + justify-content: space-evenly; +} + +.contact-icons{ + display: flex; + justify-content: space-evenly; + list-style-type: none; + margin: 0; + padding:0; +} +#headline-1, #headline-2{ + text-align: center; +} +#outline-text-headline-1 > p:last-child { + text-align: center; +} +.circular-image { + border-radius: 50%; + overflow: hidden; +} + +.circular-image img { + width: 100%; + height: auto; + display: block; +} +h1, h2, h3, h4, h5, h6 b, .member-name, p > strong { + font-family: 'DM Sans', sans-serif; +} +.nav-logo > img { + transition: 2s; + width:30px; + margin: auto; +} +.nav-logo > img:hover{ + transition: 1s; + filter: hue-rotate(180deg); + filter: brightness(50%); + filter: opacity(40%); +} + +/************** +* Posts +**************/ + +.post-list__item { + list-style: none; + margin: 20px 0; + padding: 25px; + background-color: #fff; + border-radius: 8px; + box-shadow: 0 4px 8px rgba(0, 0, 0, 0.1); + border: 1px solid var(--yellow) + +} + +.post-title { + font-size: 1.2em; + color: #333; + text-decoration: none; + padding: 0; + margin:0; +} + +.post-metadata { + display: flex; + align-items: center; + margin-top: 10px; +} + +.post-author { + color: #555; + text-decoration: none; + margin-right: 20px; +} + +.post-date { + color: #888; +} + +/************** +* Dark Mode +**************/ + +.project-img, .modal-content{ + pointer-events: auto; +} +.bg-dark { + background-color: black; + opacity: 0.9; + z-index: -10; + pointer-events: none; +} + +.header-dark { + background-color: black; + opacity: 0.9; + pointer-events: none; +} + +.navbar__right--dark > * { + color: white; + pointer-events: auto; /* Allow pointer events on child elements */ +} +.navbar__left{ + pointer-events: auto; +} +.font__white { + color: white; +} +.blog-dark{ + background-color: black !important; +} +.blog-dark > a{ + color:white; +} +.modal-dark{ + background-color: black; +} +a { + pointer-events: auto; +} +/************** +* Mobile +**************/ +@media screen and (max-width: 1200px){ + .flex-row{ + display: flex!important; + flex-direction: column!important; + } + .flex-row_outer{ + margin:auto; + width:auto; + } +} +@media screen and (max-width: 800px) { + .flex-row_outer { + flex-direction: column; + align-items: center; + margin-top:0px; + margin-right:0px; + width:100%; + } + + .flex-row, + .top-row, + .bottom-row, + .logo, + .educational, + .technical, + .contact-form, + .project-item, + .bottom_row { + display: flex; + flex-direction: column; + align-items: center; + justify-content: center; + width: 100%; + } + + .projects-list { + text-align: center; + width:75%; + + } + + .project-img { + display: block; + margin:auto; + } + .logo{ + width:200px; + margin-left: -9%; + } + + + #contact_form { + width: 100%; + } + + .contact-icons { + width: 100%; + } + + .centered-section { + order: 1; + } + + .logo > img { + width: 100%; + height: 100%; + } + + + .circular-image { + width: 150px; + height: 150px; + display: flex; + margin-left: auto; + margin-right: auto; + } + + .circular-image img { + max-width: 100%; + max-height: 100%; + border-radius: 50%; + + } + +} diff --git a/themes/ii/static/css/normalize.css b/themes/ii/static/css/normalize.css index 192eb9c..0c144ae 100644 --- a/themes/ii/static/css/normalize.css +++ b/themes/ii/static/css/normalize.css @@ -347,3 +347,10 @@ template { [hidden] { display: none; } + +/** + * Remove styling from li items by default + */ +li{ + list-style-type: none; +} \ No newline at end of file diff --git a/themes/ii/static/css/variables.css b/themes/ii/static/css/variables.css index d3060ab..5be117a 100644 --- a/themes/ii/static/css/variables.css +++ b/themes/ii/static/css/variables.css @@ -1,6 +1,6 @@ :root { /* Typography */ - --base-pt: 18px; + --base-pt: 16px; --font-weight: 400; --serif: serif; --sans: 'Noto Sans', sans-serif; @@ -37,6 +37,7 @@ --pink_dark: rgb(85,25,144); --violet: rgb(75,22,128); --teal: teal; + --yellow: #7e7e00; --teal_dark: rgb(5,62,122); --white: #fff; --ink: rgb(200,205,211);